PostgreSQL ошибка: отношение <Table>не существует - PullRequest
0 голосов
/ 26 января 2020

Я создал 2 таблицы в postgres, одна из них, кажется, в порядке, но другая возвращает ошибку: отношение "серия" не существует. Эти 2 таблицы абсолютно одинаковы, за исключением первичного ключа и некоторых столбцов. В чем проблема? когда первичный ключ отличается, разве это не создает таблицу? '' '

CREATE TABLE Films
(
Fid varchar (3) NOT NULL DEFAULT '000' PRIMARY KEY,
Uiid varchar (3),
FOREIGN KEY (Uiid) REFERENCES Users(Uid)
ON DELETE SET Default
ON UPDATE CASCADE,

Ciid varchar (3),
FOREIGN KEY (Ciid) REFERENCES Cinemas(Cid)
ON DELETE SET Default
ON UPDATE CASCADE,

Aiid varchar (3),
FOREIGN KEY (Aiid) REFERENCES Actor(Aid)
ON DELETE SET Default
ON UPDATE CASCADE,

Diid varchar (3),
FOREIGN KEY (Diid) REFERENCES Director(Did)
ON DELETE SET Default
ON UPDATE CASCADE,

uComm varchar (15000),
FOREIGN KEY (uComm) REFERENCES UserComments(Commentss)
ON DELETE SET Default
ON UPDATE CASCADE,

FName char (20) NOT NULL,
FprodYear char(4) NOT NULL,
FRate RATE,
FGenre char(50) NOT NULL        
);

' ''

CREATE TABLE Series
(
Sid varchar (3) NOT NULL DEFAULT '000' PRIMARY KEY,
Uiiid varchar (3),
FOREIGN KEY (Uiiid) REFERENCES Users(Uid)
ON DELETE SET Default
ON UPDATE CASCADE,
Ciiid varchar (3),
FOREIGN KEY (Ciiid) REFERENCES Cinemas(Cid)
ON DELETE SET Default
ON UPDATE CASCADE,

Aiiid varchar (3),
FOREIGN KEY (Aiiid) REFERENCES Actor(Aid)
ON DELETE SET Default
ON UPDATE CASCADE,

Diiid varchar (3),
FOREIGN KEY (Diiid) REFERENCES Director(Did)
ON DELETE SET Default
ON UPDATE CASCADE,

uCommm varchar (15000),
FOREIGN KEY (uCommm) REFERENCES UserComments(Commentss)
ON DELETE SET Default
ON UPDATE CASCADE,

SName char (20) NOT NULL,
SprodYear char(4) NOT NULL,
SRate RATE,
SGenre char(50) NOT NULL
);

1 Ответ

2 голосов
/ 26 января 2020

До этого вы создавали эти две таблицы:

  • Пользователи
  • Кинотеатры
  • Актер
  • Режиссер
  • UserComments

Если у вас нет, обе эти таблицы не будут созданы.

Также, пожалуйста, проверьте, что вы создали тип с именем RATE .

Если вы уже создали таблицы, о которых я упоминал, и тип данных RATE убедитесь, что у вас есть первичные ключи в этой таблице, чтобы ваш внешний ключ мог ссылаться на них.

Затем, если вы все это сделали, проверьте комментарий @TheImpaler: «ПО УМОЛЧАНИЮ '000' для первичного ключа (или любого ключа) не имеет особого смысла.".

Также если у вас есть первичный ключ в столбце, вам не нужно ограничение NOT NULL.

После всего этого у вас будет два работающих кода: https://dbfiddle.uk/?rdbms=postgres_12&fiddle=a91b77594583e6768360709ef7a9f494

Прокомментировав ОП, я обнаружил, что он может создать таблицу, ссылаясь на схему перед именем таблицы, например:

create table schema_name.Series...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...