2015-11-24 2 views
0

Я довольно много нового для mysql. Что-то, что мне трудно понять, поэтому, надеюсь, кто-то может просветить меня. У меня есть родительская таблица с «product_id» в качестве основного ключа в порядке, после создания другой таблицы под названием «поставщик_индекси» я использовал product_id в качестве внешнего ключа в этой таблице и сделал это ограничение, все хорошо до сих пор. Затем я создал новую таблицу с именем «cost_info» и хотел использовать product_id как внешний ключ для этой таблицы, а также отлично работает. Но если я хочу сделать это ограничение в этой таблице, а он даст мне 1022 ошибки, не дублирующие ключи? Я как бы потерял отношение к тому, как эта ошибка связана и почему ей будет разрешено ограничивать только один раз?mysql 1022 ошибка дубликатов ключей

+0

Что такое ограничение, что не удается? уникальное ограничение на product_ID в таблице cost_info? В таблице также содержится поставщик, и могут ли поставщики предлагать один и тот же продукт? вам может понадобиться сжатие Composite, состоящее из нескольких столбцов для создания индекса «UNIQUE». Показать код, который приводит к ошибке и структуре таблицы, в которой он применяется. – xQbert

+0

CREATE TABLE cost_id (cost_id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, product_id INT NOT NULL, CONSTRAINT list_product_id_fk FOREIGN KEY (product_id) Список ССЫЛКИ (product_id)); –

+0

Я нахожусь на моем телефоне в данный момент. Итак, если у меня на данный момент одна родительская таблица со списком и 2 таблицы, которые используют PK (product_id) в качестве внешнего ключа, но не как первичный ключ в 2 других таблицах, тогда они должны быть составными? –

ответ

0

Вам необходимо сделать product_id основным ключом.

**

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

**

Смежные вопросы