为什么我不能给出外键约束?
错误1215:无法添加外键约束
SQL语句:
CREATE TABLE `arena`.`like_history` (
`p_id` INT(11) NOT NULL,
`u_id` INT(11) NOT NULL,
`ldate` DATETIME NOT NULL,
PRIMARY KEY (`p_id`, `u_id`),
INDEX `u_id_idx` (`u_id` ASC),
CONSTRAINT `p_id`
FOREIGN KEY (`p_id`)
REFERENCES `arena`.`picture` (`p_id`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `u_id`
FOREIGN KEY (`u_id`)
REFERENCES `arena`.`user` (`ul_id`)
ON DELETE CASCADE
ON UPDATE CASCADE)
答案 0 :(得分:0)
我不确定如何定义引用的表列。
但是为了让他们有资格从其他表中引用,他们必须有 INDEXed
根据foreign key
约束的文档:
REFERENCES tbl_name(index_col_name,...)
在INDEX
和picture.p_id
列上定义user.ul_id
。
其他主要限制因素是,
ENGINE
类型必须相同。请参阅:
[CONSTRAINT [symbol]] FOREIGN KEY
[index_name](index_col_name,...)
参考文献tbl_name(index_col_name,...)
[ON DELETE reference_option]
[ON UPDATE reference_option]reference_option:
限制| CASCADE | SET NULL |没有行动