Вопрос:
Почему я получаю ошибки при попытке изменить таблицу с ограничением внешнего ключа?
Детали:
У меня есть 1 таблица, HSTORY
, которую я использую в качестве базовой таблицы для всех других конкретных таблиц истории (т.е. USER_HISTORY
, BROWSER_HISTORY
, PICTURE_HISTORY
...). Я также включил таблицы PICTURE
и USER
, поскольку они также вызываются.
Таблица ИСТОРИЯ:
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;
Таблица USER: (в случае, если кому-то интересно)
CREATE TABLE IF NOT EXISTS USER
(
ID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (ID)
)
engine=innodb;
Таблица ИЗОБРАЖЕНИЙ: (в случае, если кому-то интересно)
CREATE TABLE IF NOT EXISTS PICTURE
(
ID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (ID)
)
engine=innodb;
Таблица PICTURE_HISTORY:
CREATE TABLE IF NOT EXISTS PICTURE_HISTORY LIKE HISTORY;
ALTER TABLE PICTURE_HISTORY
ADD FOREIGN KEY (FOREIGNID) REFERENCES PICTURE(ID);
Однако, когда я это делаю, я получаю:
Key column 'FOREIGNID' doesn't exist in table
Я предполагаю, что я должен сначала создать FOREIGNID
, но во многих примерах на SO выше должно работать. Кто-нибудь знает, почему это происходит?