Postgresql Creating a Schema with tables in it - postgresql

Here's my script.
CREATE SCHEMA testSchema
create table REF_PRODUCT (
id int8 not null,
created_date timestamp,
CODE varchar(255),
DESCRIPTION varchar(255),
LOCATION varchar(255),
MANUFACTURER varchar(255),
NAME varchar(255),
COST numeric(19, 2),
DEALERS_PRICE numeric(19, 2),
SUGGESTED_RETAIL_PRICE numeric(19, 2),
STOCK int4,
PRODUCT_TYPE varchar(255),
picture_id int8,
primary key (id)
)
create table TXN_LINE_ITEM (
id int8 not null,
created_date timestamp,
cancelled boolean,
cost numeric(19, 2),
dp numeric(19, 2),
itemCode varchar(255),
itemName varchar(255),
priceType varchar(255),
qty int4,
refunded boolean,
srp numeric(19, 2),
total numeric(19, 2),
transactionRecord_id int8,
primary key (id)
)
create table TXN_PRODUCT_PICTURE (
id int8 not null,
created_date timestamp,
picture bytea,
primary key (id)
)
create table TXN_TRANSACTION_RECORD (
id int8 not null,
created_date timestamp,
total numeric(19, 2),
transaction_date timestamp,
TRANSACTION_NUMBER varchar(255),
VALID boolean,
primary key (id)
)
alter table REF_PRODUCT
add constraint FK_sjugahpelk16qj5h3w8dli42l
foreign key (picture_id)
references TXN_PRODUCT_PICTURE;
alter table TXN_LINE_ITEM
add constraint FK_o5mslaahpil9d3g9rl2s22rpm
foreign key (transactionRecord_id)
references TXN_TRANSACTION_RECORD;
create table SEQ_ENTITY_ID (
sequence_name varchar(255),
sequence_next_hi_value int4
);
The problem is the fk relationships specified in alter table statement is not being created
Because of this error.
[WARNING ] CREATE SCHEMA testSchema
create table REF_PRODUCT (
id int8 not null,
created_date timestamp,
CODE varchar(255),
DESCRIPTION varchar(255),
LOCATION varchar(255),
MANUFACTURER varchar(255),
NAME varchar(255),
COST numeric(19, 2),
DEALERS_PRICE numeric(19, 2),
SUGGESTED_RETAIL_PRICE numeric(19, 2),
STOCK int4,
PRODUCT_TYPE varchar(255),
picture_id int8,
primary key (id)
)
create table TXN_LINE_ITEM (
id int8 not null,
created_date timestamp,
cancelled boolean,
cost numeric(19, 2),
dp numeric(19, 2),
itemCode varchar(255),
itemName varchar(255),
priceType varchar(255),
qty int4,
refunded boolean,
srp numeric(19, 2),
total numeric(19, 2),
transactionRecord_id int8,
primary key (id)
)
create table TXN_PRODUCT_PICTURE (
id int8 not null,
created_date timestamp,
picture bytea,
primary key (id)
)
create table TXN_TRANSACTION_RECORD (
id int8 not null,
created_date timestamp,
total numeric(19, 2),
transaction_date timestamp,
TRANSACTION_NUMBER varchar(255),
VALID boolean,
primary key (id)
)
alter table REF_PRODUCT
add constraint FK_sjugahpelk16qj5h3w8dli42l
foreign key (picture_id)
references TXN_PRODUCT_PICTURE
ERROR: syntax error at or near "alter"
LINE 53: alter table REF_PRODUCT
^
[WARNING ] alter table TXN_LINE_ITEM
add constraint FK_o5mslaahpil9d3g9rl2s22rpm
foreign key (transactionRecord_id)
references TXN_TRANSACTION_RECORD
ERROR: relation "txn_line_item" does not exist
[WARNING ] create table SEQ_ENTITY_ID (
sequence_name varchar(255),
sequence_next_hi_value int4
)
ERROR: relation "seq_entity_id" already exists
NOTE THAT: There's no existing tables on the said Schema I have made. What have I missed?

I think you have two ways of doing this.
The first one: don't run one create schema statement, but run individual statements for each part (this is what I prefer). You can still do that as a single transaction:
begin transaction;
CREATE SCHEMA testSchema; -- only create the namespace
-- make the new schema the default schema
-- so the the tables do not need to be full qualified
set search_path = testschema;
create table REF_PRODUCT (
...
);
create table TXN_LINE_ITEM (
...
);
create table TXN_PRODUCT_PICTURE (
...
);
create table TXN_TRANSACTION_RECORD (
...
);
alter table REF_PRODUCT
add constraint fk_product_picture
foreign key (picture_id)
references TXN_PRODUCT_PICTURE;
alter table TXN_LINE_ITEM
add constraint FK_line_item_trans_record
foreign key (transactionRecord_id)
references TXN_TRANSACTION_RECORD;
create table SEQ_ENTITY_ID (
sequence_name varchar(255),
sequence_next_hi_value int4
);
commit;
The other option is to move the foreign keys into the table definition, but then you need to re-order your create table statements:
CREATE SCHEMA testSchema
create table TXN_PRODUCT_PICTURE (
...
)
create table TXN_TRANSACTION_RECORD (
...
)
create table REF_PRODUCT (
...,
constraint fk_product_picture
foreign key (picture_id)
references TXN_PRODUCT_PICTURE
)
create table TXN_LINE_ITEM (
...
constraint FK_line_item_trans_record
foreign key (transactionRecord_id)
references TXN_TRANSACTION_RECORD
)
create table SEQ_ENTITY_ID (
sequence_name varchar(255),
sequence_next_hi_value int4
)
;
Unrelated, but:
What is this SEQ_ENTITY_ID table for? Why don't you use native Postgres sequences. They will be much faster, more scalable and more robust than anything you can do in your application to generate unique numbers

Related

When I run this code a syntax error keeps appearing but I am unable to find where it would be

When I run this code, I receive a very vague syntax error: database: syntax error at or near "(". I am unable to find where this syntax error would be.
I have also been told that animal_adoption_history is not an associative entity when it was designed as one.
What have I done wrong when writing it?
The code:
DROP TABLE IF EXISTS customer;
DROP TABLE IF EXISTS animal;
DROP TABLE IF EXISTS animal_adoption_history;
create table customer (
customer_id CHAR(9) NOT NULL,
c_first_name VARCHAR(25),
c_last_name VARCHAR(50),
c_gender CHAR(1),
c_phone_number VARCHAR(20),
c_email_address VARCHAR(45),
c_date_of_birth DATE,
c_address_number VARCHAR(10),
c_street_name VARCHAR(30),
c_city VARCHAR(50),
c_state CHAR(3),
c_postcode CHAR(4),
c_has_adopted_before CHAR(1),
constraint customer_PK PRIMARY KEY (customer_id)
);
create table animal (
animal_id CHAR(9) NOT NULL,
a_animal_type VARCHAR(20) ,
a_breed VARCHAR(50),
a_colour VARCHAR(30),
a_size VARCHAR(20),
a_weight_kg VARCHAR(10),
a_description VARCHAR(75),
a_name VARCHAR(30),
a_date_of_birth DATE,
a_sex CHAR(1),
a_animal_cost INT(10),
a_microchip_status CHAR(1),
a_vaccination_status CHAR(1),
constraint animal_PK PRIMARY KEY (animal_id)
);
create table animal_adoption_history (
health_conditions VARCHAR(100),
is_available_to_adopt CHAR(1),
has_been_adopted_previously CHAR(1),
reason_for_entry VARCHAR(75),
date_entered DATE,
animal_id CHAR(9) NOT NULL,
customer_id CHAR(9) NOT NULL,
constraint animal_adoption_history_PK PRIMARY KEY (animal_id, customer_id),
constraint animal_adoption_history_FK1 FOREIGN KEY (animal) references animal(animal_id)
constraint animal_adoption_history_FK2 FOREIGN KEY (customer_id) references customer(customer_id)
);
INSERT INTO customer (customer_id,c_first_name,c_last_name,c_gender,c_phone_number,c_email_address,c_date_of_birth,c_address_number,c_street_name,c_city,c_state,c_postcode,c_has_adopted_before)
VALUES ('C00000001','Olivia','Smith','F','0422425392','olivia.smith#gmail.com','1980-06-22','2','Henderson Street','Bondi','NSW','2092','Yes');
INSERT INTO customer (customer_id,c_first_name,c_last_name,c_gender,c_phone_number,c_email_address,c_date_of_birth,c_address_number,c_street_name,c_city,c_state,c_postcode,c_has_adopted_before)
VALUES ('C00000002','Taylor','Brown','F','0422435394','taylor.brown#gmail.com','1999-02-24','62','Ultimo Avenue','Bondi','NSW','2092','No');
INSERT INTO customer (customer_id,c_first_name,c_last_name,c_gender,c_phone_number,c_email_address,c_date_of_birth,c_address_number,c_street_name,c_city,c_state,c_postcode,c_has_adopted_before)
VALUES ('C00000003','Sarah','Li','F','0422425342','sarah.li#gmail.com','1997-02-22','27','Winchester Street','Epping','NSW','2092','Yes');
INSERT INTO customer (customer_id,c_first_name,c_last_name,c_gender,c_phone_number,c_email_address,c_date_of_birth,c_address_number,c_street_name,c_city,c_state,c_postcode,c_has_adopted_before)
VALUES ('C00000004','Charlie','Swift','M','0432425392','charlie.swift#gmail.com','1998-02-22','22','Henderson Lane','Lindfield','NSW','2092','No');
INSERT INTO customer (customer_id,c_first_name,c_last_name,c_gender,c_phone_number,c_email_address,c_date_of_birth,c_address_number,c_street_name,c_city,c_state,c_postcode,c_has_adopted_before)
VALUES ('C00000005','Heath','Davidson','M','0422425911','heath.davidson#gmail.com','2003-01-22','22','Station Street','Manly','NSW','2092','Yes');
INSERT INTO animal (animal_id,a_animal_type,a_breed,a_colour,a_size,a_weight_kg,a_description,a_name,a_date_of_birth,a_sex,a_animal_cost,a_microchip_status,a_vaccination_status)
VALUES ('A00000001','Dog','Pug','Light brown','Small','5','Playful yet enjoys cuddles','Mia','2020-02-22','F','3100','Y','Y');
INSERT INTO animal (animal_id,a_animal_type,a_breed,a_colour,a_size,a_weight_kg,a_description,a_name,a_date_of_birth,a_sex,a_animal_cost,a_microchip_status,a_vaccination_status)
VALUES ('A00000002','Cat','Tabby','Orange','Small','4','Quiet and loves the sun','Garfield','2010-04-28','M','1400','Y','N');
INSERT INTO animal (animal_id,a_animal_type,a_breed,a_colour,a_size,a_weight_kg,a_description,a_name,a_date_of_birth,a_sex,a_animal_cost,a_microchip_status,a_vaccination_status)
VALUES ('A00000003','Bird','Budgie','Green and yellow','Extra Small','0.035','Very loud when hungry','Roody','11-14','F','1200','N','Y');
INSERT INTO animal (animal_id,a_animal_type,a_breed,a_colour,a_size,a_weight_kg,a_description,a_name,a_date_of_birth,a_sex,a_animal_cost,a_microchip_status,a_vaccination_status)
VALUES ('A00000004','Rabbit','Holland Lop','Light brown and white','Small','5','Fluffy and enjoys lettuce snacks','Thumper','2018-19-04','F','900','N','N');
INSERT INTO animal (animal_id,a_animal_type,a_breed,a_colour,a_size,a_weight_kg,a_description,a_name,a_date_of_birth,a_sex,a_animal_cost,a_microchip_status,a_vaccination_status)
VALUES ('A00000005','Dog','Golden Retriever','Dark blonde','Large','32','Loves going for long walks','Milo','2014-05-30','M','2500','Y','Y');
INSERT INTO animal_adoption_history (health_conditions,is_available_to_adopt,has_been_adopted_previously,reason_for_entry,date_entered,animal_id,customer_id)
VALUES ('None','Y','Y','Owner moved away','2021-08-18','A00000001','C00000001');
INSERT INTO animal_adoption_history (health_conditions,is_available_to_adopt,has_been_adopted_previously,reason_for_entry,date_entered,animal_id,customer_id)
VALUES ('None','N','N','Newborn looking for home','2022-07-13','A00000003','C00000005');
INSERT INTO animal_adoption_history (health_conditions,is_available_to_adopt,has_been_adopted_previously,reason_for_entry,date_entered,animal_id,customer_id)
VALUES ('Diabetes','Y','Y','Owner passed away','2019-11-01','A00000004','C00000001');
INSERT INTO animal_adoption_history (health_conditions,is_available_to_adopt,has_been_adopted_previously,reason_for_entry,date_entered,animal_id,customer_id)
VALUES ('None','Y','N','Previous household abuse','2014-09-19','A00000002','C00000004');
INSERT INTO animal_adoption_history (health_conditions,is_available_to_adopt,has_been_adopted_previously,reason_for_entry,date_entered,animal_id,customer_id)
VALUES ('Arthritis','Y','Y','Newborn looking for home','2016-04-26','A00000005','C00000002');
Thanks!
INT(10) is not valid datatype:
a_animal_cost INT(10)
There are other issues as well, you have to fix this.
You have a number of errors in your code. When running PostgreSQL only lists the first one, which in this case is the line a_animal_cost INT(10),. Integers are a fixed size so it is wrong to attempt to specify a size for it.
Also do not use char(1) for Yes ('Y') No ('N') fields. PostgreSQL has a native boolean data type for this purpose, so use it.
When deleting tables, you need to delete the lowest tables in the hierarchy first (foreign key etc).
Finally, you can chain multiple inserts as values together.
Putting all this together, I would recommend that you use something like this:
DROP TABLE IF EXISTS animal_adoption_history;
DROP TABLE IF EXISTS animal;
DROP TABLE IF EXISTS customer;
create table customer (
customer_id CHAR(9) NOT NULL,
c_first_name VARCHAR(25),
c_last_name VARCHAR(50),
c_gender CHAR(1),
c_phone_number VARCHAR(20),
c_email_address VARCHAR(45),
c_date_of_birth DATE,
c_address_number VARCHAR(10),
c_street_name VARCHAR(30),
c_city VARCHAR(50),
c_state CHAR(3),
c_postcode CHAR(4),
c_has_adopted_before boolean,
constraint customer_PK PRIMARY KEY (customer_id)
);
create table animal (
animal_id CHAR(9) NOT NULL,
a_animal_type VARCHAR(20) ,
a_breed VARCHAR(50),
a_colour VARCHAR(30),
a_size VARCHAR(20),
a_weight_kg VARCHAR(10),
a_description VARCHAR(75),
a_name VARCHAR(30),
a_date_of_birth DATE,
a_sex CHAR(1),
a_animal_cost INT,
a_microchip_status boolean,
a_vaccination_status boolean,
constraint animal_PK PRIMARY KEY (animal_id)
);
create table animal_adoption_history (
health_conditions VARCHAR(100),
is_available_to_adopt boolean,
has_been_adopted_previously boolean,
reason_for_entry VARCHAR(75),
date_entered DATE,
animal_id CHAR(9) NOT NULL,
customer_id CHAR(9) NOT NULL,
constraint animal_adoption_history_PK PRIMARY KEY (animal_id, customer_id),
constraint animal_adoption_history_FK1 FOREIGN KEY (animal_id) references animal(animal_id),
constraint animal_adoption_history_FK2 FOREIGN KEY (customer_id) references customer(customer_id)
);
INSERT INTO customer (customer_id,c_first_name,c_last_name,c_gender,c_phone_number,c_email_address,c_date_of_birth,c_address_number,
c_street_name,c_city,c_state,c_postcode,c_has_adopted_before) VALUES
('C00000001','Olivia','Smith','F','0422425392','olivia.smith#gmail.com','1980-06-22','2',
'Henderson Street','Bondi','NSW','2092',true),
('C00000002','Taylor','Brown','F','0422435394','taylor.brown#gmail.com','1999-02-24','62',
'Ultimo Avenue','Bondi','NSW','2092',false),
('C00000003','Sarah','Li','F','0422425342','sarah.li#gmail.com','1997-02-22','27',
'Winchester Street','Epping','NSW','2092',true),
('C00000004','Charlie','Swift','M','0432425392','charlie.swift#gmail.com','1998-02-22','22',
'Henderson Lane','Lindfield','NSW','2092',false),
('C00000005','Heath','Davidson','M','0422425911','heath.davidson#gmail.com','2003-01-22','22',
'Station Street','Manly','NSW','2092',true);
INSERT INTO animal (animal_id,a_animal_type,a_breed,a_colour,a_size,a_weight_kg,a_description,a_name,a_date_of_birth,
a_sex,a_animal_cost,a_microchip_status,a_vaccination_status) VALUES
('A00000001','Dog','Pug','Light brown','Small','5','Playful yet enjoys cuddles','Mia','2020-02-22',
'F','3100',true,true),
('A00000002','Cat','Tabby','Orange','Small','4','Quiet and loves the sun','Garfield','2010-04-28',
'M','1400',true,false),
('A00000003','Bird','Budgie','Green and yellow','Extra Small','0.035','Very loud when hungry','Roody','2020-11-14',
'F','1200',false,true),
('A00000004','Rabbit','Holland Lop','Light brown and white','Small','5','Fluffy and enjoys lettuce snacks','Thumper','2018-04-19',
'F','900',false,false),
('A00000005','Dog','Golden Retriever','Dark blonde','Large','32','Loves going for long walks','Milo','2014-05-30',
'M','2500',true,true);
INSERT INTO animal_adoption_history (health_conditions,is_available_to_adopt,has_been_adopted_previously,reason_for_entry,
date_entered,animal_id,customer_id) VALUES
('None',true,true,'Owner moved away','2021-08-18','A00000001','C00000001'),
('None',false,false,'Newborn looking for home','2022-07-13','A00000003','C00000005'),
('Diabetes',true,true,'Owner passed away','2019-11-01','A00000004','C00000001'),
('None',true,false,'Previous household abuse','2014-09-19','A00000002','C00000004'),
('Arthritis',true,true,'Newborn looking for home','2016-04-26','A00000005','C00000002');

sql error - no unique constraint matching keys

for some reason i am getting there is no unique constraint matching given keys for referenced table "accident_location". I am using postgresql to create the table. what is the error here? as i have set the primary key of ID and address_ID on my accident_location table
CREATE TABLE IF NOT EXISTS Accident(
ID varchar(10) NOT NULL,
Severity INT,
Start_Time varchar(100) NOT NULL,
End_Time varchar(100) NOT NULL,
Description varchar(100),
PRIMARY KEY(ID)
);
CREATE TABLE IF NOT EXISTS Accident_Location(
ID varchar(10),
Address_ID INT,
Start_lat float,
Start_Lng float,
End_Lat float,
End_Lng float,
"Distance(mi)" float,
PRIMARY KEY (ID,Address_ID),
FOREIGN KEY (ID) REFERENCES Accident(ID)
);
CREATE TABLE IF NOT EXISTS Address(
Address_ID INT,
Number INT,
Street varchar(100),
Side varchar(5) ,
City varchar(50) NOT NULL,
County varchar(50) ,
State varchar(10) NOT NULL,
Zipcode varchar(15) NOT NULL,
Country varchar(5) ,
Timezone varchar(30) ,
Airport_code varchar(10),
Location_ID INT NOT NULL,
Weather_ID INT NOT NULL,
PRIMARY KEY (Address_ID),
FOREIGN KEY (Address_ID) REFERENCES Accident_Location(Address_ID)
);
The referenced Address_ID on the Address table should be unique on table Accident_Location.
Change Accident_Location table to
CREATE TABLE IF NOT EXISTS Accident_Location(
ID varchar(10),
Address_ID INT constraint unx_addres_id_location unique,
Start_lat float,
Start_Lng float,
End_Lat float,
End_Lng float,
"Distance(mi)" float,
PRIMARY KEY (ID,Address_ID),
FOREIGN KEY (ID) REFERENCES Accident(ID)
);
Here, I've added a unique constraint on Address_ID
Address_ID INT constraint unx_addres_id_location unique
UPDATED
Since you are referring to Address_ID of Accident_Location table as a foreign key on the Address table, this will force you to make it a unique record. That means any two rows or more should not have the same value of Address_ID. Otherwise, the foreign key Address_ID on the Address table wouldn't know which row you are referring to.
The reason you are not seeing this same error for the Accident table is that by default primary keys are unique.

How do you create the table structure in PostgreSQL to make a many-to-many relationship

my example so far I would like to know how to create a many to many relationship with these.
CREATE TABLE accounts (
id SERIAL,
first_name VARCHAR(50),
last_name VARCHAR (50),
username VARCHAR (50),
password VARCHAR (500),
account_Type VARCHAR (10),
bday VARCHAR (50),
PRIMARY KEY(id)
);
CREATE TABLE bank_account(
id SERIAL,
account_number INTEGER PRIMARY KEY,
account_balance INTEGER
);
you can create a table like this one:
CREATE TABLE bank_account_accounts(
id serial primary key,
accounts_id integer,
bank_account_id integer
);

postgresql: constaint to have unique values across 2 tables

I have 2 tables:
CREATE TABLE public."user"
(
id integer NOT NULL DEFAULT nextval('user_id_seq'::regclass),
username character varying(256) COLLATE pg_catalog."default",
CONSTRAINT user_pkey PRIMARY KEY (id)
)
CREATE TABLE public.user_tenant
(
user_id integer NOT NULL,
tenant_id integer NOT NULL,
CONSTRAINT user_fk FOREIGN KEY (user_id)
REFERENCES public."user" (id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE CASCADE
)
I need to have unique values (user.username, user_tenant.tenant_id). How can I declare such a constraint?
I would make the username unique, just like the tenant that is in another table. When that is done, you can put a primary key on the user_id and tenant_id:
CREATE TABLE public."user"
(
id integer NOT NULL DEFAULT nextval('user_id_seq'::regclass),
username character varying(256) COLLATE pg_catalog."default" unique,
CONSTRAINT user_pkey PRIMARY KEY (id)
);
CREATE TABLE public.user_tenant
(
user_id integer NOT NULL,
tenant_id integer NOT NULL,
CONSTRAINT user_fk FOREIGN KEY (user_id)
REFERENCES public."user" (id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE CASCADE,
CONSTRAINT user_tenant_pk PRIMARY KEY (user_id, tenant_id)
);
By the way, don't use reserved names like "user" for table names.
You can create a function which can check for uniqueness across multiple tables (example here: Postgres unique combination constraint across tables) but it looks like you may need to the structure of your tables or follow Frank Heikens' answer.
EDIT:
CREATE TABLE public."user"
(
id SERIAL,
username character varying(256) COLLATE pg_catalog."default",
PRIMARY KEY (id)
);
CREATE TABLE public.user_tenant
(
user_id integer NOT NULL,
tenant_id integer NOT NULL,
CONSTRAINT user_fk FOREIGN KEY (user_id)
REFERENCES public."user" (id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE CASCADE
);
CREATE OR REPLACE FUNCTION public.check_user_tenant(user_id integer, tenant_id integer)
RETURNS boolean AS
$$
DECLARE b_result boolean;
BEGIN
SELECT (COUNT(*) = 0) INTO b_result
FROM public.user u
JOIN public.user_tenant ut ON ut.user_id IN (SELECT id
FROM public.user i_u
WHERE i_u.username = u.username)
WHERE u.id = $1 AND ut.tenant_id = $2;
RETURN b_result;
END
$$ LANGUAGE 'plpgsql';
ALTER TABLE public.user_tenant
ADD CONSTRAINT check_filename CHECK
(public.check_user_tenant(user_id, tenant_id));
-- Testing:
insert into public."user" (username) VALUES ('foo');
insert into public.user_tenant (user_id, tenant_id) VALUES (1,3);
insert into public."user" (username) VALUES ('foo');
-- Violates constraint:
insert into public.user_tenant (user_id, tenant_id) VALUES (2,3);

Find cause of error "constraint xxxx is not a foreign key constraint" in Postgresql

I have defined these tables:
CREATE TABLE "public".category (id BIGSERIAL NOT NULL, name varchar(255) NOT NULL, PRIMARY KEY (id));
CREATE UNIQUE INDEX category_name ON "public".category (name);
CREATE TABLE "public".clusters (id BIGSERIAL NOT NULL, name varchar(255) NOT NULL, PRIMARY KEY (id));
CREATE INDEX clusters_name ON "public".clusters (name);
CREATE TABLE "public".keywords (id BIGSERIAL NOT NULL, text varchar(255) NOT NULL, category_id int8 NOT NULL, top_results int4, cluster_id int8, month_requests int4, click_cost float8, PRIMARY KEY (id));
CREATE INDEX keywords_text ON "public".keywords (text);
ALTER TABLE "public".keywords ADD CONSTRAINT FKkeywords488682 FOREIGN KEY (cluster_id) REFERENCES "public".clusters (id);
ALTER TABLE "public".keywords ADD CONSTRAINT FKkeywords446526 FOREIGN KEY (category_id) REFERENCES "public".category (id) ON UPDATE CASCADE ON DELETE CASCADE;
added one record to category table:
INSERT INTO "public".category(id, name) VALUES (1, 'Test');
And now when I try to add record to keyword table
insert into "public"."keywords" ( "category_id", "text") values ( 1, 'testkey')
I got error:
ERROR: constraint 16959 is not a foreign key constraint
When I do
select * FROM pg_constraint;
I can't see constraint with this id. I can't understand what is the cause of this problem.