Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试在mySQL中运行存储过程时,由于外键约束而失败_Mysql_Stored Procedures_Command Line Interface_Mysql Error 1452 - Fatal编程技术网

尝试在mySQL中运行存储过程时,由于外键约束而失败

尝试在mySQL中运行存储过程时,由于外键约束而失败,mysql,stored-procedures,command-line-interface,mysql-error-1452,Mysql,Stored Procedures,Command Line Interface,Mysql Error 1452,我编写了一个简单的存储过程,其中有一个while循环不起作用。 以下是一些数据: 父表是data\u client\u id。这些表都是innoDB。主键是ID。模式中具有data_u前缀的所有其他表都将此(data_client_ID.ID)列作为外键。 我生成了一些虚拟数据,并将其插入到自动递增主键的data_client_id表中。生成的行是33到132行。我的意图是编写一个存储过程,为所有其他数据表创建id列中具有匹配值的行 这是我的密码: mysql> DELIMITER //

我编写了一个简单的存储过程,其中有一个while循环不起作用。 以下是一些数据: 父表是data\u client\u id。这些表都是innoDB。主键是ID。模式中具有data_u前缀的所有其他表都将此(data_client_ID.ID)列作为外键。 我生成了一些虚拟数据,并将其插入到自动递增主键的data_client_id表中。生成的行是33到132行。我的意图是编写一个存储过程,为所有其他数据表创建id列中具有匹配值的行

这是我的密码:

mysql> DELIMITER //
mysql> CREATE PROCEDURE this()
    -> BEGIN
    -> DECLARE v1 INT;
    -> SET v1 = 33;
    -> WHILE v1 < 132 DO
    -> INSERT INTO data_banking (id) VALUES(v1);
    -> SET v1 = v1+1;
    -> END WHILE;
    -> END//
Query OK, 0 rows affected (0.00 sec)
我试着在数据表中运行独立插入,如下所示: 在数据中插入银行(id)值(34)


将默认值为NULL的所有列或它们各自设置的默认值都设置为NULL,这样做很有效。

您的存储过程没有问题

问题是,除非data_client_id中也存在相同的id,否则无法将运行插入data_banking。每个id从33到132

要解决此问题,请删除约束,或确保已解决外键依赖关系

以下是一些有用提示的链接:


我想我不清楚。。我在data_client_id中插入了第33行到第132行。。即使填充了一些额外的列,它们仍然存在。。这是奇怪的部分。
mysql> call this();
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails             (`oms_clients`.`data_banking`, CONSTRAINT `data_banking_FK` FOREIGN KEY (`id`) REFERENCES  `data_client_id` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION)