我在ON DUPLICATE UPDATE遇到了一个独特的问题
我的表结构是:
ID = bigint(20) Primary key / Auto Increment<br>
uName = char(20);
附加索引:
uName_Unique = uName Unique<br>
表格数据:
ID = uName<br>
1 = Test01<br>
2 = Test02<br>
3 = Test03<br>
如果我尝试使用以下语句使用 uName 字段中的相同数据更新记录
INSERT(ID, uName) VALUES (2, 'Test01') ON DUPLICATE KEY UPDATE uName = 'Test01';
我收到错误消息:
错误:键'uName_UNIQUE'重复输入'Test01'
问题:
是否有一个简单的方法来管理错误,还是应该删除UNIQUE索引并允许重复?
答案 0 :(得分:0)
如果表格中已存在名称
,则无法允许更新INSERT INTO table(ID, uName) VALUES (2, 'Test01')
ON DUPLICATE KEY UPDATE uName = 'Test01' WHERE NOT EXISTS (SELECT uName FROM table WHERE uName = 'Test01');
答案 1 :(得分:0)
当主键ID重复时发生ON DUPLICATE KEY UPDATE,错误显示,因为更新字段uName也是UNIQUE。所以你应该删除uName的唯一索引。