Я пытаюсь создать базу данных в MySQL на phpMyAdmin. Я могу создавать таблицы без каких-либо проблем, но я также хочу добавить некоторые внешние ключи. В этом случае я хочу связать таблицы BIDS и CLIENTS через атрибут CLIENTID.
CREATE TABLE BIDS (
BIDID NUMERIC(3) NOT NULL PRIMARY KEY,
CLIENTID NUMERIC(3) NOT NULL
);
CREATE TABLE CLIENTS (
CLIENTID NUMERIC(3) NOT NULL,
EMAILADDRESSES VARCHAR(100) NOT NULL,
PHONENUMBERS VARCHAR(11) NOT NULL,
FOREIGN KEY (CLIENTID) REFERENCES BIDS (CLIENTID),
PRIMARY KEY (CLIENTID,EMAILADDRESSES,PHONENUMBERS)
);
Исследования говорят мне, что синтаксис правильный, но этот код возвращает следующую ошибку.
По-видимому, решение может быть связано с чем-то под названием «InnoDB». Как я могу использовать это, чтобы исправить мою проблему?
Синтаксис в порядке, но проблема с FORIEGN KEY
утверждение как ниже. Вы не можете создать FK для неключевого столбца. В BIDS
стол это BIDID
который определяется как Primary Key
и не CLIENTID
FOREIGN KEY (CLIENTID) REFERENCES BIDS (CLIENTID)
Так что ваши FORIEGN KEY
определение должно быть на самом деле
FOREIGN KEY (CLIENTID) REFERENCES BIDS (BIDID)
Посмотреть демо здесь http://sqlfiddle.com/#!2/f1c9ec
Других решений пока нет …