Zmiana tabeli MySQL w celu dodania ograniczenia klucza obcego prowadzi do błędów

Pytanie:

Dlaczego otrzymuję błędy podczas próby zmiany tabeli z ograniczeniem klucza obcego?

Detale:

Mam 1 stół,HSTORY które używam jako tabeli bazowej dla wszystkich innych specyficznych tabel historii (tj.USER_HISTORY, BROWSER_HISTORY, PICTURE_HISTORY...). Włączyłem równieżPICTURE iUSER stoliki, jak również się nazywają.

Tabela HISTORIA:

<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>

Tabela użytkownika: (na wypadek gdyby ktoś był ciekawy)

<code>CREATE TABLE IF NOT EXISTS USER
(
   ID        INT NOT NULL AUTO_INCREMENT,

   PRIMARY KEY (ID)
)
engine=innodb;
</code>

Tabela OBRAZÓW: (na wypadek gdyby ktoś był ciekawy)

<code>CREATE TABLE IF NOT EXISTS PICTURE
(
   ID        INT NOT NULL AUTO_INCREMENT,

   PRIMARY KEY (ID)
)
engine=innodb;
</code>

Tabela PICTURE_HISTORY:

<code>CREATE TABLE IF NOT EXISTS PICTURE_HISTORY LIKE HISTORY;

ALTER TABLE PICTURE_HISTORY
ADD FOREIGN KEY (FOREIGNID) REFERENCES PICTURE(ID);
</code>

Jednak kiedy to robię, dostaję:

<code>Key column 'FOREIGNID' doesn't exist in table
</code>

To oznacza, że ​​muszę najpierw stworzyćFOREIGNID, ale w wielu przykładach na SO powyższe powinno działać. Ktoś wie, dlaczego tak się dzieje?

questionAnswers(2)

yourAnswerToTheQuestion