Ошибка MySQL 1215 не удается добавить ограничение ключа foriegn

#mysql

#mysql

Вопрос:

 USE sales;
CREATE TABLE sales
(
   purchase_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
   date_of_purchase DATE,
   customer_id INT,
   idem_code VARCHAR(10)
);

CREATE TABLE customers
(
   customer_id INT,
   first_name VARCHAR(255),
   last_name VARCHAR(255),
   email_address VARCHAR(255),
   number_of_customer INT
);

ALTER TABLE sales
ADD FOREIGN KEY (customer_id) REFERENCES customers(customer_id) ON DELETE CASCADE;
  

Я полностью новичок в SQL. Я столкнулся с ошибкой 1215 my SQL и пробовал различные способы ее исправления, но тщетно. Пожалуйста, помогите.

Большое вам спасибо.

Комментарии:

1. В этом сообщении об ошибке есть еще кое-что. ПОЖАЛУЙСТА, всегда показывайте нам все сообщения об ошибках

Ответ №1:

Ограничение внешнего ключа должно ссылаться на что-то UNIQUE .

В вашей таблице customers customer_id это просто INT , нет ничего, что обеспечивало бы уникальность.

Я бы настоятельно посоветовал вам изменить определение таблицы customers на :

 CREATE TABLE customers
(
   customer_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, -- <---- Check this line
   first_name VARCHAR(255),
   last_name VARCHAR(255),
   email_address VARCHAR(255),
   number_of_customer INT
);
  

INT NOT NULL PRIMARY KEY AUTO_INCREMENT это обычный способ записи первичных ключей INT в MySQL, так же, как вы делали в таблице sales . Вы можете использовать BIGINT вместо INT