批量插入主键自增的数据,怎么保证除主键外,其他的数据不重复

baidu_25915011 2015-11-01 01:03:19
或者有没有什么方法让其主键不同的数据,其他的重复的记录找到,并能快速的删除!
...全文
562 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
LongRui888 2015-11-03
  • 打赏
  • 举报
回复
引用 8 楼 baidu_25915011 的回复:
[quote=引用 4 楼 lzd_83 的回复:] 要保证不重复保证记录唯一性unique
我现在创建跟我好语句 CREATE TABLE crm_car_style ( car_style_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY , car_model_id INT(11) NULL DEFAULT NULL , car_style_name VARCHAR(128) NULL DEFAULT NULL , car_model_name VARCHAR(128) NULL DEFAULT NULL , is_deleted TINYINT(1) NULL DEFAULT '0' , car_brand_name VARCHAR(128) NULL DEFAULT NULL , car_brand_id INT(11) NULL DEFAULT NULL )ENGINE=InnoDB,CHARSET=utf8; 然后批量插入数据 ,41,奥迪 A1 2012款 1.4TFSI 双离合 Ego plus,奥迪 A1(进口),0,奥迪,\N ,41,奥迪 A1 2012款 1.4TFSI 双离合 Ego,奥迪 A1(进口),0,奥迪,\N ,41,奥迪 A1 2012款 1.4TFSI 双离合 Urban,奥迪 A1(进口),0,奥迪,\N ,41,奥迪 A1 2013款 1.4TFSI 双离合 30TFSI 中国限量版 Ego plus,奥迪 A1(进口),0,奥迪,\N ,41,奥迪 A1 2013款 1.4TFSI 双离合 30TFSI 中国限量版 Ego,奥迪 A1(进口),0,奥迪,\N ,41,奥迪 A1 2013款 Sportback 1.4TFSI 双离合 30TFSI Ego plus,奥迪 A1(进口),0,奥迪,\N ,41,奥迪 A1 2013款 Sportback 1.4TFSI 双离合 30TFSI Ego,奥迪 A1(进口),0,奥迪,\N ,41,奥迪 A1 2013款 Sportback 1.4TFSI 双离合 30TFSI Urban,奥迪 A1(进口),0,奥迪,\N ,42,奥迪 A3 2004款 Sportback 2.0T 手动 基本型,奥迪 A3,0,奥迪,\N ,41,奥迪 A1 2012款 1.4TFSI 双离合 Ego plus,奥迪 A1(进口),0,奥迪,\N ,41,奥迪 A1 2012款 1.4TFSI 双离合 Ego plus,奥迪 A1(进口),0,奥迪,\N 第一个逗号前为自增的id 我怎么批量的插入,并无重复 [/quote] mysql导入可以用这个语句: LOAD DATA INFILE 'data.csv' INTO TABLE table2 IGNORE 1 LINES FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' csv的分隔符就是逗号,不过这里你的情况有点特殊,就是第一列是没有值的自增列,建议,你先创建一个表 table2,然后把数据通过上面的load 语句导入到table2中,在通过下面的语句,来解决第一个自增列的问题: insert into your_table(列) select 列 from table2
baidu_25915011 2015-11-03
  • 打赏
  • 举报
回复
引用 4 楼 lzd_83 的回复:
要保证不重复保证记录唯一性unique
我现在创建跟我好语句 CREATE TABLE crm_car_style ( car_style_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY , car_model_id INT(11) NULL DEFAULT NULL , car_style_name VARCHAR(128) NULL DEFAULT NULL , car_model_name VARCHAR(128) NULL DEFAULT NULL , is_deleted TINYINT(1) NULL DEFAULT '0' , car_brand_name VARCHAR(128) NULL DEFAULT NULL , car_brand_id INT(11) NULL DEFAULT NULL )ENGINE=InnoDB,CHARSET=utf8; 然后批量插入数据 ,41,奥迪 A1 2012款 1.4TFSI 双离合 Ego plus,奥迪 A1(进口),0,奥迪,\N ,41,奥迪 A1 2012款 1.4TFSI 双离合 Ego,奥迪 A1(进口),0,奥迪,\N ,41,奥迪 A1 2012款 1.4TFSI 双离合 Urban,奥迪 A1(进口),0,奥迪,\N ,41,奥迪 A1 2013款 1.4TFSI 双离合 30TFSI 中国限量版 Ego plus,奥迪 A1(进口),0,奥迪,\N ,41,奥迪 A1 2013款 1.4TFSI 双离合 30TFSI 中国限量版 Ego,奥迪 A1(进口),0,奥迪,\N ,41,奥迪 A1 2013款 Sportback 1.4TFSI 双离合 30TFSI Ego plus,奥迪 A1(进口),0,奥迪,\N ,41,奥迪 A1 2013款 Sportback 1.4TFSI 双离合 30TFSI Ego,奥迪 A1(进口),0,奥迪,\N ,41,奥迪 A1 2013款 Sportback 1.4TFSI 双离合 30TFSI Urban,奥迪 A1(进口),0,奥迪,\N ,42,奥迪 A3 2004款 Sportback 2.0T 手动 基本型,奥迪 A3,0,奥迪,\N ,41,奥迪 A1 2012款 1.4TFSI 双离合 Ego plus,奥迪 A1(进口),0,奥迪,\N ,41,奥迪 A1 2012款 1.4TFSI 双离合 Ego plus,奥迪 A1(进口),0,奥迪,\N 第一个逗号前为自增的id 我怎么批量的插入,并无重复
baidu_25915011 2015-11-03
  • 打赏
  • 举报
回复
引用 2 楼 yupeigu 的回复:
按照你的说法,实际上你的主键只是一个代理建,没有具体的意义。 这样确实会导致其他字段会有重复,建议你可以在其他字段上创建一个unique索引,保证数据的一致。
你好,能具体说说unique的应用么!
码无边 2015-11-03
  • 打赏
  • 举报
回复
sql执行,找出重复的数据,delete掉
文修 2015-11-03
  • 打赏
  • 举报
回复
楼主你好,我的理解: 如果是所有的数据都已经插入完了之后,再找出不重复的数据,那么就需要遍历全部数据,工作量大而且浪费时间,而在插入的时候就将重复的数据剔除不仅效率高,而且花费时间少,方法是在给每个字段加上unique属性,如此重复的数据就会自动滤过,而只插入不重复的数据。
LongRui888 2015-11-03
  • 打赏
  • 举报
回复
引用 10 楼 baidu_25915011 的回复:
[quote=引用 2 楼 yupeigu 的回复:] 按照你的说法,实际上你的主键只是一个代理建,没有具体的意义。 这样确实会导致其他字段会有重复,建议你可以在其他字段上创建一个unique索引,保证数据的一致。
unique(car_model_id,car_style_name,car_model_name,is_deleted,car_brand_name,car_brand_id)这些所有吗,然后导入就不重复了?是么[/quote] 如果有重复,会报错
baidu_25915011 2015-11-03
  • 打赏
  • 举报
回复
引用 2 楼 yupeigu 的回复:
按照你的说法,实际上你的主键只是一个代理建,没有具体的意义。 这样确实会导致其他字段会有重复,建议你可以在其他字段上创建一个unique索引,保证数据的一致。
unique(car_model_id,car_style_name,car_model_name,is_deleted,car_brand_name,car_brand_id)这些所有吗,然后导入就不重复了?是么
Rotel-刘志东 2015-11-02
  • 打赏
  • 举报
回复
要保证不重复保证记录唯一性unique
benluobo 2015-11-02
  • 打赏
  • 举报
回复
unique 约束可以满足
LongRui888 2015-11-02
  • 打赏
  • 举报
回复
按照你的说法,实际上你的主键只是一个代理建,没有具体的意义。 这样确实会导致其他字段会有重复,建议你可以在其他字段上创建一个unique索引,保证数据的一致。
道玄希言 2015-11-01
  • 打赏
  • 举报
回复
找出不能重复的字段. select max(主键), col1, col2, count(1) as cnt from tbl group by col1, col2 having cnt > 1 按照不能重复字段分组, 计数大于1 的,为记录有重复.

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧