欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql聯合統計查詢,有哪些方法可以避免重復的插入數據

林國瑞2年前20瀏覽0評論
mysql聯合統計查詢,有哪些方法可以避免重復的插入數據?

簡要說下三者的區別:

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