【发布时间】:2019-01-17 07:11:14
【问题描述】:
我有一些数据要添加到现有的 mysql 数据库中。新数据可能包含已保存在 DB 中的条目。由于我的某些列是唯一的,因此如预期的那样,我收到了 ER_DUP_ENTRY 错误。
批量插入
假设我想使用以下语句将“A”、“B”和“C”保存在表 mytable 的列 names 中,并且“A”已经保存在那里。
insert into mytable (names) values ("A"), ("B"), ("C");
有没有办法直接使用bulk insert来保存“B”和“C”而忽略“A”?还是我必须为每个新行构建一个insert 语句?这就引出了另一个问题:
标准化数据
我是否应该保证在实际的insert 声明之前不上传重复条目?在我的情况下,我需要select 数据库中的数据,消除重复项,然后执行上面看到的insert。或者这是一个应该由数据库完成的任务?
【问题讨论】:
-
大多数情况下,我相信这是由数据库服务器处理的。看看这个堆栈问题:stackoverflow.com/q/3164505/3148109
-
如果我做对了,我不能使用批量插入来完成该任务吗?因为它在那里显示的方式,它会检查每个条目是否已经存在。
标签: mysql database-design relational-database