Mysql 几种常见的插入 Insert into,Replace Int…

2018-06-18 01:36:58来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

简要说下三者的区别:insert into 最普遍的插入,如果表中存在主键相同的数据,执行会报错。

          replace into 如果表中存在主键相同的数据则根据主键修改当前主键的数据,反之则插入(存在就修改,反之插入

          insert ignore  如果表中存在主键相同的数据不在插入该条数据,反之则插入(存在则忽略,反之插入

测试:

1.新增一张测试表 并预置数据

CREATE TABLE `insert_text` (
  `id` varchar(50) NOT NULL,
  `value` varchar(50) DEFAULT NULL ,
    `memo` varchar(50) DEFAULT NULL ,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `insert_text` (`id`, `value`, `memo`) VALUES ("1", "2", "3");

2.检测replace into执行效果

(1)执行语句(该语句的ID与预置数据的ID相同):

REPLACE INTO `insert_text` (`id`, `value`, `memo`) VALUES ('1', 'replace', 'replace');

执行结果:

(注意:这里返回的受影响行数为2,所以在统计插入数据成功的条数需注意下)

(2)执行语句(该语句的ID与预置数据的ID不同):

REPLACE INTO `insert_text` (`id`, `value`, `memo`) VALUES ('2', 'replace', 'replace');

执行结果:

在这里因为主键不同,可以理解为执行了insert into

 

3.检测insert ignore执行效果:

(1)执行语句(该语句的ID与预置数据的ID相同):

INSERT IGNORE `insert_text` (`id`, `value`, `memo`) VALUES ('1', 'ignore', 'ignore');

 

数据未发生改变

(2)执行语句(该语句的ID与预置数据的ID不同):

INSERT IGNORE `insert_text` (`id`, `value`, `memo`) VALUES ('2', 'ignore', 'ignore');

在这里因为主键不同,可以理解为执行了insert into

 

好了,测试完成,需要根据不同的场景选择对应的插入方式----------------fillt

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:c3p0数据源配置

下一篇:MySQL 基本语法