Tasks in celestial database

it is requested to have tables with a primary key named table_id
i created all tables and pkeys
table5 : “table5_id” PRIMARY KEY, btree (id)
moon : moon_id" PRIMARY KEY, btree (id)
planet : planet_id" PRIMARY KEY, btree (id)
star : star_id" PRIMARY KEY, btree (id)
galaxy : galaxy_id" PRIMARY KEY, btree (id)
and still complaining
same for foreign keys : name should be referencing column
Foreign-key constraints:
“id” FOREIGN KEY (planet_id) REFERENCES planet(id)
is this not correct ?
best regards, Guy

The name of the column has to be exactly the same as the name of the foreign key

id = id
or should it be the name of the column in the dependent table : eg planet_id pointing to id in parent table

If you have a planet table for eg and it has a column called planet_id and you want to link that with another table as the foreign key (say another table called moon), then the moon table should use planet_id too

i do not agree with that
I have planet table with a column id
the moon table has a column id and a column planet_id
the moon.planet_id column has a foreign key to panel.id
so : should the name be id / planet_id to be checked as correct ?

They should both be planet_id

Edit: to be clear, the foreign key should be called planet_id

changed the names of FK and still task is not done flagged ok
cat universe.sql |grep -i FOREIGN
ADD CONSTRAINT galaxy_id FOREIGN KEY (galaxy_id) REFERENCES public.galaxy(id);
ADD CONSTRAINT planet_id FOREIGN KEY (planet_id) REFERENCES public.planet(id);
ADD CONSTRAINT star_id FOREIGN KEY (star_id) REFERENCES public.star(id);

same problem with PK :
cat universe.sql |grep -i PRIMARY
ADD CONSTRAINT galaxy_id PRIMARY KEY (id);
ADD CONSTRAINT moon_id PRIMARY KEY (id);
ADD CONSTRAINT planet_id PRIMARY KEY (id);
ADD CONSTRAINT star_id PRIMARY KEY (id);
ADD CONSTRAINT universe_id PRIMARY KEY (id);
cat universe.sql |grep -i ‘CREATE TABLE’
CREATE TABLE public.galaxy (
CREATE TABLE public.moon (
CREATE TABLE public.planet (
CREATE TABLE public.star (
CREATE TABLE public.universe (

it does not appear that you have followed this request

Each primary key column should follow the naming convention table_name_id . For example, the moon table should have a primary key column named moon_id

It appears all your primary keys are called id?

the name of the pk is galaxy_id for table galaxy on column id

The constraint name is not the issue. It is the column name that needs to be changed.

this I do not understand at all
the task indicates : the pk should be named tablename_id
there is no indication about the column on which the pk is based.

When I read the instruction it says “the primary key column”. So a column is not a constraint.

yes, reading each word is important. thks for all help
completed the task
best regards, Guy

1 Like