编辑:
我的问题是因为桌子使用不同的发动机。表Chart使用MyISAM,Chartdata使用InnoDB。
我有一个非常简单的数据库模型,但由于某种原因,我不能得到外键工作。我已经用Mysql工作台创建了数据库,并且在'Chart'表中有两行id为3和4。当我试图在chartdata中添加行时,会出现以下错误:
INSERT INTO `charts`.`Chartdata` (
`idChartdata` ,
`param1` ,
`param2` ,
`Chart_id`
)
VALUES (
NULL , '2012-01-10 05:00:00', '58', '3'
)
图表
我确信外键存在,并且我已经尝试重新创建表的时间(微小的变化)。
链接到数据库模型:http://i.stack.imgur.com/qKZlh.png
这是来自PhpMyAdmin的SQL转储:
CREATE TABLE IF NOT EXISTS `Chartdata` (
#1452 - Cannot add or update a child row: a foreign key constraint fails (
int(11)非空自动递增,.
varchar(500)默认为空,, CONSTRAINT
varchar(500)默认为空,FOREIGN KEY (
int(11)不为空,主键(
) REFERENCES
,(
),键
) ON DELETE CASCADE ON UPDATE CASCADE)
(idChartdata
))引擎=InnoDB默认字符集=latin1 AUTO_INCREMENT=10;
更改表
param1
在DELETE CASCADE ON UPDATE CASCADE上添加约束
param2
外键(Chart_id
)引用idChartdata
(Chart_id
); 最佳答案
我的问题是因为桌子使用不同的发动机。表Chart使用MyISAM,Chartdata使用InnoDB。
关于mysql - MySQL错误#1452-无法添加或更新子行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8801918/