我想通过 java 更新表(使用 mysql)。
I have a Test table with structure
id(pk) name address
还有另外一张 table
Practice with following structure
p_id id(fk) branch
现在我想更新测试表,但是根据外键约束,我将得到外键约束
"Cannot delete or update a parent row: a foreign key constraint fails
”,因为它也在子表中使用。 那么,如果我想更新它,如何仍然更新我的测试表呢?
我正在尝试这种方式。
UPDATE Test SET Test.id=1,NAME='XYZ'
所以我是否需要删除外键约束,然后根据需要更新我的表并再次重新应用 又是这些约束?
在这种情况下我应该如何更新我的测试表?
最佳答案
我想你想做的是:
更新测试 SET NAME='XYZ' WHERE id = 1
如果您执行了 UPDATE Test SET id=1, Name = 'XYZ'
,您将尝试将每个测试记录设置为 id=1
,并且 名称 = 'XYZ'
。
查询无疑会失败,因为您不能有超过一行的 id=1
。
如果你有一个id=3
的测试记录,并且你有一个引用该测试记录的实践记录,并且你的SQL命令现在试图改变所有id 为 1。
因此,外键约束失效。
您确定您的 SQL 查询正确吗?
关于java - 使用主键更新表,在许多子表中用作外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10990703/