Изменение таблицы MySQL для добавления ограничения внешнего ключа приводит к ошибкам
Почему я получаю ошибки при попытке изменить таблицу с ограничением внешнего ключа?
Details:У меня есть 1 стол,HSTORY
который я использую в качестве базовой таблицы для всех других конкретных таблиц истории (т.е.USER_HISTORY
, BROWSER_HISTORY
, PICTURE_HISTORY
...). Я также включилPICTURE
а такжеUSER
таблицы, как их называют, а также.
HISTORY table:
<code>CREATE TABLE IF NOT EXISTS HISTORY ( ID INT NOT NULL AUTO_INCREMENT, VIEWERID INT NOT NULL , VIEWDATE TIMESTAMP NOT NULL DEFAULT NOW(), PRIMARY KEY (ID), FOREIGN KEY (VIEWERID) REFERENCES USER(ID) ) engine=innodb; </code>
USER table: (если кому-то интересно)
<code>CREATE TABLE IF NOT EXISTS USER ( ID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (ID) ) engine=innodb; </code>
PICTURE table: (если кому-то интересно)
<code>CREATE TABLE IF NOT EXISTS PICTURE ( ID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (ID) ) engine=innodb; </code>
PICTURE_HISTORY table:
<code>CREATE TABLE IF NOT EXISTS PICTURE_HISTORY LIKE HISTORY; ALTER TABLE PICTURE_HISTORY ADD FOREIGN KEY (FOREIGNID) REFERENCES PICTURE(ID); </code>
Однако, когда я делаю это, я получаю:
<code>Key column 'FOREIGNID' doesn't exist in table </code>
Я понимаю, что это означает, что я должен сначала создатьFOREIGNID
, но во многих примерах на SO вышеупомянутое должно работать. Кто-нибудь знает, почему это происходит?