Hyd*_*erA 7 mysql insert duplicates
这是我的表格,里面有一些样本数据
a_id | b_id
------------
1 225
2 494
3 589
Run Code Online (Sandbox Code Playgroud)
当我运行此查询时
INSERT IGNORE INTO table_name (a_id, b_id) VALUES ('4', '230') ('2', '494')
Run Code Online (Sandbox Code Playgroud)
当它应该忽略第二个值对时,它会插入这些行(2,594)
没有定义索引,这些列都不是主列.
我不知道什么?
pax*_*blo 13
来自文档:
如果使用IGNORE关键字,则执行INSERT语句时发生的错误将被视为警告.例如,如果没有IGNORE,则复制表中现有UNIQUE索引或PRIMARY KEY值的行会导致重复键错误,并且语句将中止.使用IGNORE时,仍未插入行,但未发出错误.
(我的斜体).
您的行不会复制"现有的UNIQUE索引或PRIMARY KEY值",因为您没有主键也没有任何唯一约束.
如果您在其中一条评论中提到,您希望这两个字段都不是唯一的,但您确实希望组合是唯一的,则需要跨两列的复合主键(首先删除所有重复项):
alter table MYTABLE add primary key (a_id,b_id)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12067 次 |
| 最近记录: |