mysql建立外键发生错误,求救
CREATE TABLE `szs_jihuadan_items_price` (
`szs_shengchanhao` varchar(255) NOT NULL,
`szs_guige` varchar(255) NOT NULL,
`szs_ptuhao` varchar(255) NOT NULL,
`szs_price` float NOT NULL,
`szs_beizhu` text NOT NULL,
PRIMARY KEY (`szs_shengchanhao`,`szs_guige`,`szs_ptuhao`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `szs_pl_stock` (
`id` int(8) unsigned zerofill NOT NULL auto_increment,
`sch` varchar(255) NOT NULL COMMENT '生产号',
`gg` varchar(255) NOT NULL COMMENT '规格',
`th` varchar(255) NOT NULL COMMENT '图号',
`subNm` varchar(255) NOT NULL COMMENT '子部件',
`gid` varchar(4) NOT NULL COMMENT '工步号',
`sl` decimal(12,2) default NULL COMMENT '库存量',
`bz` text,
PRIMARY KEY (`id`),
UNIQUE KEY `NewIndex1` (`sch`,`gg`,`th`,`subNm`,`gid`)
) ENGINE=InnoDB AUTO_INCREMENT=14867 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC
szs_pl_stock要建立外键,sch,gg,th关联到szs_jihuadsan_items_price的szs_shengchanhao,szs_guige,szs_ptuhao,
当szs_pl_stock没有数据的时候可以建立,有数据的时候建立的时候发生以下错误:
alter table `szs_jihuadan`.`szs_pl_stock` add constraint `FK_szs_pl_stock` FOREIGN KEY (`sch`,`gg`,`th`) REFERENCES `szs_jihuadan_items_price` (`szs_shengchanhao`,`szs_guige`,`szs_ptuhao`) ON DELETE RESTRICT ON UPDATE CASCADE
Cannot add or update a child row: a foreign key constraint fails (`szs_jihuadan/#sql-6b0_16b`, CONSTRAINT `FK_szs_pl_stock` FOREIGN KEY (`sch`, `gg`, `th`) REFERENCES `szs_jihuadan_items_price` (`szs_shengchanhao`, `szs_guige`, `szs_ptuhao`) ON UPDATE CASCAD)
为什么?
------解决方案--------------------
先 set foreign_key_checks=0
然后再alter table创建外键