mysql建立外键发生异常

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创建外键

mysql建立外键发生异常

相关文章:

你感兴趣的文章:

标签云: