我不能在外键中添加'null'

时间:2014-07-31 21:21:50

标签: mysql sql null foreign-keys

我创建了两个表,如下所示:

CREATE TABLE `leiame` (
    `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    `number` INT(10) NOT NULL,
    `title` VARCHAR(100) NOT NULL,
    PRIMARY KEY (`id`) )

CREATE TABLE `download` (
    `id` INT(10) NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(100) NOT NULL,
    `id_leiame` INT(10) UNSIGNED NULL,
    PRIMARY KEY (`id`),
    CONSTRAINT `leia_id_fk` FOREIGN KEY (`id_leiame`) 
                            REFERENCES `leiame` (`id`) ON UPDATE CASCADE )

在下载时为id_leiame添加 null 值时,会出现以下错误:

  

无法添加或更新子行:外键约束失败(`bd``download`,CONSTRAINT`leia_id_fk` FOREIGN KEY(`id_leiame`)REFERENCES`leiame`(`id`)ON UPDATE CASCADE)< / p>

我将id_leiame设置为NULL。

我缺少什么?

1 个答案:

答案 0 :(得分:0)

正如其他人在评论中指出的那样,基于你正在执行的语句,你似乎插入'null'(即一个包含null的字符串)而不是实际的NULL,即没有值。

你需要做的是(正确的语法)

if($leiame == "")
   $crud->inserir("name,id_leiame", "'$name',null") << no single quotes!
else
   $crud->inserir("name,id_leiame", "'$name','$leiame'")