#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