CREATE TABLE IF NOT EXISTS `abnr`.`reputation_event_log` (
`id` INT NOT NULL AUTO_INCREMENT ,
`reputation_event_id` INT NULL ,
`giver_user_id` INT NOT NULL , -- mandatory giver_user_id
`receiver_user_id` INT NULL , -- optional receiver_user_id
. . .
是的,你可以
NULL
在声明了外键约束的列中
NOT NULL
列上的约束独立于该列上的任何外键约束。
外键意味着
如果
该列具有非NULL值,则该值必须存在于外键约束引用的表的主键中。
编辑:
至于你的
UNIQUE
要求,您是否知道可以申报
独特的
对可空列的约束。柱子
五月
包含
无效的
s(与主键约束不同)。这是标准的SQL行为,MySQL支持。
. . .
PRIMARY KEY (`id`),
CONSTRAINT UNIQUE (`giver_user_id`, `receiver_user_id`,
`review_id`, `reputation_event_id`),
. . .