您的位置:首页 > 博客中心 > 数据库 >

我的MYSQL学习心得(八)

时间:2022-03-10 17:32

 可以看到,插入记录成功,person_old表现在有两条记录。接下来将person_oldperson_old表中的所有记录插入到person表

gxlsystem.com,布布扣

可以看到数据转移成功,这里的id字段为自增的主键,在插入时要保证该字段值的唯一性,如果不能确定,可以插入的时候忽略该字段,

只插入其他字段的值

如果再执行一次就会出错

gxlsystem.com,布布扣

 

MYSQL和SQLSERVER的区别:

区别一

当要导入的数据中有重复值的时候,MYSQL会有三种方案

方案一:使用 ignore 关键字
方案二:使用 replace into
方案三:ON DUPLICATE KEY UPDATE

第二和第三种方案这里不作介绍,因为比较复杂,而且不符合要求,这里只讲第一种方案

gxlsystem.com,布布扣

gxlsystem.com,布布扣

可以看到插入成功

 

SQLSERVER

在SQLSERVER这边,如果要忽略重复键,需要在建表的时候指定 WITH (IGNORE_DUP_KEY = ON) ON [PRIMARY] 

这样在插入重复值的时候,SQLSERVER第一次会保留值,第二次发现有重复值的时候,SQLSERVER就会忽略掉

 

区别二

插入自增列时的区别

SQLSERVER需要使用 SET IDENTITY_INSERT 表名 ON 才能把自增字段的值插入到表中,如果不加 SET IDENTITY_INSERT 表名 ON 

则在插入数据到表中时,不能指定自增字段的值,则id字段不能指定值,SQLSERVER会自动帮你自动增加一

gxlsystem.com,布布扣

也可以指定值

gxlsystem.com,布布扣

也可以不写id的值,MYSQL会自动帮你增一

gxlsystem.com,布布扣

你可以指定id字段的值也可以不指定,指定的时候只要当前id字段列没有你正在插入的那个值就可以,即没有重复值就可以

自由度非常大,而且无须指定 SET IDENTITY_INSERT 表名 ON 选项

 

区别三

唯一索引的NULL值重复问题

MYSQL

在MYSQL中UNIQUE 索引将会对null字段失效

gxlsystem.com,布布扣


删除

删除person表中一定范围的数据

gxlsystem.com,布布扣

如果要删除表的所有记录可以使用下面的两种方法

gxlsystem.com,布布扣

gxlsystem.com,布布扣

gxlsystem.com,布布扣

 

 

跟SQLSERVER一样,执行完TRUNCATE TABLE后,自增字段重新从一开始。

gxlsystem.com,布布扣

当你刚刚truncate了表之后执行下面语句就会看到重新从一开始

gxlsystem.com,布布扣


总结

这一节介绍了MYSQL里的的插入、更新和删除,并且比较了与SQLSERVER的区别,特别是MYSQL里插入语句的灵活性

刚刚开始从SQLSERVER转过来可能会有一些不适应

 

 

如有不对的地方,欢迎大家拍砖o(∩_∩)o 

 

参考资料

mysql忽略主键冲突、避免重复插入的几种方式

SQLSERVER忽略重复键进行数据导入的解决方案

我的MYSQL学习心得(八),布布扣,bubuko.com

热门排行

今日推荐

热门手游