问题:
为什么在尝试更改具有外键约束的表时出现错误?
细节:
我有 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 的示例中,上述内容应该有效。有谁知道为什么会这样?