Изменение таблицы MySQL для добавления ограничения внешнего ключа приводит к ошибкам

Question:

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

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 вышеупомянутое должно работать. Кто-нибудь знает, почему это происходит?

Ответы на вопрос(2)

Ваш ответ на вопрос