#mysql #sql
#MySQL #sql
Вопрос:
Я пытаюсь создать соединение между клиентами и сотрудниками моих таблиц базы данных. Однако появляется ошибка: не удается создать таблицу staff_db
. customer_orders
(ошибка: 121 «Дубликат ключа при записи или обновлении»).
CREATE TABLE staff(
staff_id int(12) not null,
staff_name varchar(20),
staff_address varchar(32),
staff_department varchar(20),
PRIMARY KEY (staff_id)
);
CREATE TABLE customers(
customer_id int(12) not null,
customer_name varchar(20),
customer_address varchar(32),
customer_product varchar(25),
staff_id int(12) not null,
FOREIGN KEY staff_fk(staff_id) REFERENCES staff(staff_id),
PRIMARY KEY (customer_id)
);
CREATE TABLE customer_orders(
customer_id int(12) not null,
staff_id int(12) not null,
FOREIGN KEY customer_fk(customer_id) REFERENCES customers(customer_id),
FOREIGN KEY staff_fk(staff_id) REFERENCES staff(staff_id),
PRIMARY KEY (customer_id,staff_id)
);
Ответ №1:
В вашей таблице customer_orders вы назвали внешний ключ «ВНЕШНИЙ КЛЮЧ staff_fk (staff_id) ССЫЛАЕТСЯ НА персонал (staff_id) «, как в вашей таблице customers » ВНЕШНИЙ КЛЮЧ staff_fk (staff_id) ССЫЛАЕТСЯ на персонал (staff_id) «. Имена должны быть уникальными. Измените имя на одно из двух, и ваша проблема, как правило, будет решена.