java - 使用主键更新表,在许多子表中用作外键

标签 java mysql

我想通过 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/

相关文章:

Mysql 多列全文索引 & "AND operator"

php - 在 MySQL 中加密/解密大文本数据的推荐方法是什么?

java - 命名参数 [XXX] 未在此过程调用中注册

java - 如何克服 Spring 和 Jbehave 版本控制问题?

java - Apache Tika ArchiveStreamFactory.detect 错误

java - 需要在java中的某个点重新开始

mysql - 使用 MySQL 8 的事务性 Spring Boot 测试回滚事务,但无论如何都会插入行

java - JAX-RS 2 : using Guava ListenableFuture for async resources

php - 想出了空间用户搜索,但我如何按距离排序? (php laravel mysql)

MySQL集群-分布感知查询和存储过程是否是冲突的想法?