使用 MariaDB,我在一个表上运行插入,然后尝试在第二个表上运行另一个插入。由于限制,只有第一次插入成功后,第二次插入才会成功。
如果我尝试在一个事务中执行两次插入,则第二次插入会失败并出现完整性错误。如果我提交第一个插入,则第二个插入成功。
我假设在单个事务中可以进行两次插入是否正确?
我看到的实际情况稍微复杂一些:有两个没有约束的插入,第三个有约束,只有前两个插入成功时才会成功。第三次插入使用前两个表的主键元组作为其主键。
使用 MariaDB,我在一个表上运行插入,然后尝试在第二个表上运行另一个插入。由于限制,只有第一次插入成功后,第二次插入才会成功。
如果我尝试在一个事务中执行两次插入,则第二次插入会失败并出现完整性错误。如果我提交第一个插入,则第二个插入成功。
我假设在单个事务中可以进行两次插入是否正确?
我看到的实际情况稍微复杂一些:有两个没有约束的插入,第三个有约束,只有前两个插入成功时才会成功。第三次插入使用前两个表的主键元组作为其主键。
重命名一些表后,出现以下错误:
MariaDB [testdb]> INSERT INTO user_events (date, uid, operation, info) VALUES('2022-09-15','xyz','create',NULL);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails `testdb`.`user_events`, CONSTRAINT `user_events_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `associations` (`uid`))
原因是需要将里面的associations
表REFERENCES
改成users
.
实现这一目标的最简单方法是什么?