无法使用mysql在具有外键的表中插入数据

时间:2013-01-31 14:28:51

标签: mysql sql foreign-keys sql-insert

我已经制作了两张桌子 第二个表由引用第一个表的主键的外键组成 第二个表由3个字段id(主键),order no,fid组成 我正在使用以下命令

插入table2(订单号,fid) values(1,(从table1中选择id,其中name ='abc');

sql语法enter code here

中的

错误

3 个答案:

答案 0 :(得分:1)

ORDERreserved word。您必须使用反引号引用它:`order no`

此外,您应该使用MySQL的INSERT ... SELECT语法:

INSERT INTO table2 (`order no`, fld)
SELECT 1,id FROM table1 WHERE name = 'abc'

答案 1 :(得分:0)

你缺少额外的右括号

insert into table2 (`order no`,fid) 
values(1,(select id from table1 where name='abc' LIMIT 1));

答案 2 :(得分:0)

插入`table2`(`order no`,`fid`)值(1,(从table1中选择id,其中name ='abc');

...编辑 可能是问题线: 他的错误是无法添加或更新子行:外键约束失败(abc / demo1,CONSTRAINT fid FOREIGN KEY(id)REFERENCES demo(id))

它应该是(abc / demo1,CONSTRAINT fid FOREIGN KEY( fid )REFERENCES demo(id))