Как исправить MySQL код ошибки 1064 с внешним ключом - PullRequest
0 голосов
/ 15 апреля 2020
CREATE TABLE IF NOT EXISTS lineitem (
line_no         INT(11)                                             NOT NULL,
line_invoiceId  INT(11) FOREIGN KEY REFERENCES invoice(inv_id)      NOT NULL,
line_productId  INT(11) FOREIGN KEY REFERENCES products(id)         NOT NULL,
line_price      DECIMAL(10,2)                                       NOT NULL,
PRIMARY KEY (line_no, line_invoiceId)
);

КОД ОШИБКИ 1064

1 Ответ

2 голосов
/ 15 апреля 2020

Удалить FOREIGN KEY. Здесь вы используете сокращенный синтаксис, а не полноценный синтаксис SQL для ограничений внешнего ключа.

Например:

create table invoice (inv_id int(11) primary key not null);

create table products (id int(11) primary key not null);

CREATE TABLE IF NOT EXISTS lineitem (
  line_no        INT(11) NOT NULL,
  line_invoiceId INT(11) NOT NULL REFERENCES invoice(inv_id),
  line_productId INT(11) NOT NULL REFERENCES products(id),
  line_price     DECIMAL(10,2) NOT NULL,
  PRIMARY KEY (line_no, line_invoiceId)
);

См. SQL Fiddle .

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