Я пытаюсь связать две таблицы вместе через внешний ключ в MySQL. Таблица CLIENTS должна быть связана с другой таблицей (BIDS) с атрибутом Client ID.
CREATE TABLE CLIENTS (
CLIENTID NUMERIC(3) NOT NULL,
FOREIGN KEY(CLIENTID) REFERENCES BIDS(CLIENTID),
PRIMARY KEY(CLIENTID, EMAILADDRESSES,PHONENUMBERS,CONTACTS)
);
Однако MySQL возвращает эту ошибку, когда я пытаюсь выполнить код.
# 1005 — Невозможно создать таблицу «КЛИЕНТЫ» (ошибка: 150)
Кажется, это не синтаксическая ошибка, поэтому кто-нибудь знает, что является причиной проблемы или как я могу ее исправить?
При создании таблицы с первичным ключом с использованием нескольких столбцов они должны быть указаны в запросе —
CREATE TABLE CLIENTS (
CLIENTID NUMERIC(3) NOT NULL,
EMAILADDRESSES CHAR(64),
PHONENUMBERS VARCHAR(16),
CONTACTS VARCHAR(32),
FOREIGN KEY(CLIENTID) REFERENCES BIDS(CLIENTID),
CONSTRAINT key_name PRIMARY KEY(CLIENTID, EMAILADDRESSES,PHONENUMBERS,CONTACTS)
);
Вы также должны указать имя для первичного ключа из нескольких столбцов. Почему вы хотите, чтобы все эти столбцы были ключом, остается загадкой.
Других решений пока нет …