我有兩個我創建的表,我在事後添加外鍵約束。外鍵不工作:錯誤代碼1005,SQL狀態HY000:無法創建表
兩個表的定義是這樣的:
CREATE TABLE `user` (
`user_id` int(11) NOT NULL auto_increment,
`user_ad_id` varchar(500) default NULL,
`user_name` varchar(100) NOT NULL,
`login_id` varchar(100) default NULL,
`email` varchar(256) NOT NULL,
`personal_config` int(10) NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
和
CREATE TABLE IF NOT EXISTS personal_config (
config_id INT(10) NOT NULL AUTO_INCREMENT,
last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
configuration TEXT(25600) NOT NULL,
PRIMARY KEY (config_id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE personal_config ADD CONSTRAINT personal_config_fk_user FOREIGN KEY
(config_id) REFERENCES user(personal_config);
而且我不斷收到同樣的錯誤,但不能弄明白。我已經搜索了所有相關的線程。
你從哪裏得到的錯誤執行,第一CREATE TABLE或第二後? –
請注意,您的'ALTER TABLE'似乎後退。由於'config_id'是auto_increment值,'user'應該有一個FK到personal_config,而不是相反。 –
之後。這些表格創建的很好,它只是不起作用的alter table。 – MikeG