假设我有两个表如下,
表A.
+-------+-------+-------+-------+
| col_a | col_b | col_c | col_d |
+-------+-------+-------+-------+
| | | | |
+-------+-------+-------+-------+
Run Code Online (Sandbox Code Playgroud)
表B.
+-------+-------+-------+-------+
| col_a | col_b | col_c | col_d |
+-------+-------+-------+-------+
| | | | |
+-------+-------+-------+-------+
Run Code Online (Sandbox Code Playgroud)
我将使用表B更新表A.以下是条件
col_a应在表A中更新col_a应插入表A问题是当更新表A中的数据时,对于某些记录,此唯一键约束失败.问题是如何使用查询识别违反唯一键约束的记录.(我无权访问日志)
Gle*_*enn 11
如果你没有一个唯一的关键col_b, col_c, col_d的table_b,这将在复制时导致冲突.您可以使用如下查询识别有问题的行:
SELECT col_b, col_c, col_d
FROM table_b
GROUP BY col_b, col_c, col_d
HAVING COUNT(*) > 1
Run Code Online (Sandbox Code Playgroud)
可以在table_ajoin to 上运行类似的查询table_b,但要运行的特定查询将取决于将更新哪些列table_a.对于插入案例,一种有用的技术可能是使用MINUSbetween table_a和建议的插入行.