SQL插入命令错误

时间:2016-11-01 17:05:25

标签: mysql

这是我的SQL:

INSERT INTO film (film_id, title, description, release_year, language_id, original_language_id,
rental_duration, rental_rate, length, replacement_cost, rating, special_features, last_update)
VALUES ('1001','1 st Grade FBI Agent','An undercover FBI agent must pretend to be
a 1st grade teacher to catch the bad guy', '2014','2','null', '5', '4.99', '123', '2014', 
'20.99', 'PG-13', 'Tailers');

这是我运行时遇到的错误。这是我用于课程作业的预设数据库,我被告知要在电影表中插入一个新行。

错误代码:1452。无法添加或更新子行:外键约束失败(sakilafilm,CONSTRAINT fk_film_language_original FOREIGN KEY(original_language_id)参考languagelanguage_id)ON UPDATE CASCADE)

5 个答案:

答案 0 :(得分:1)

original_language_id的值必须与语言表中一行的language_id值匹配。此要求是由电影桌上的foreign key引起的。

如果此值为整数,则不应用引号括起来。

答案 1 :(得分:0)

您的SQL语句正在尝试为null'表中的original_language_id字段插入&{39; film值。

看起来这个original_language_id是一个引用language_id表中language的FOREIGN KEY,很可能是该表上的PRIMARY KEY。

答案 2 :(得分:0)

看起来你正在给予' null'作为original_language_id的值。检查您的语言表中是否为null值。如果你想插入值null ....写它只是null而不是' null'。

答案 3 :(得分:0)

似乎" original_language_id"是"语言"的外键。表格和您要插入的值,即' null'在这种情况下不在父表(语言)中。

答案 4 :(得分:0)

我在你的陈述中看到了一些问题。但要回答所提出的问题,请查看"语言"表。您在original_language_id中输入的值必须是language.language_id列中的值之一(或null,请参见下文)。

至于其他东西,一些用户已经评论过null值。 null是一个关键字,不应该在引号中。

此外,您的最后4个值似乎与字段列表的顺序不同。