Tud*_*dor 8 mysql duplicate-data
我的问题是我在桌子上有多个唯一键.
因此,唯一的选择是重复只是不更新任何东西.有什么办法可以实现吗?或者还有其他选择吗?
dou*_*arp 18
如果您不想ON DUPLICATE KEY UPDATE实际执行任何操作,只需将列值设置为现有值即可.与使用IGNORE关键字不同,其他冲突(如外键约束)会冒出来,但冲突时不会改变任何值.
INSERT INTO table (value1, value2) VALUES ('1', '2')
ON DUPLICATE KEY UPDATE value1 = value1;
Run Code Online (Sandbox Code Playgroud)
如果要确保在发生冲突时没有有效的数据更改,可以将包含任意数据的列添加到表中,并将其用于该UPDATE语句.
如果您希望将所有逻辑保留在应用程序而不是数据库中,则第三个选项是首先运行SELECT语句以在运行INSERT/UDPATE语句之前检查潜在的冲突.
尽管排除了您的场景,但存储过程也可以在单个数据库调用中提供此逻辑.
| 归档时间: |
|
| 查看次数: |
16812 次 |
| 最近记录: |