Mysql 幾種常見的插入 Insert into,Replace Into,Insert ignore


簡要說下三者的區別: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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM