最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中的insert ignore into使用

 更新時(shí)間:2022年08月18日 10:37:20   作者:一縷陽(yáng)光a  
這篇文章主要介紹了MySQL中的insert ignore into使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

MySQL中的insert ignore into

最近工作中,使用到了insert ignore into語(yǔ)法,感覺這個(gè)語(yǔ)法還是挺有用的,就記錄下來(lái)做個(gè)總結(jié)。

  • insert ignore into : 忽略重復(fù)的記錄,直接插入數(shù)據(jù)。

包括兩種場(chǎng)景:

1、插入的數(shù)據(jù)是主鍵沖突時(shí)

insert ignore into會(huì)給出warnings,show warnings就可以看到提示主鍵沖突;

[test]> create table tt(c1 int primary key, c2 varchar(50))engine = xx;
Query OK, 0 rows affected (0.21 sec)
?
[test]> insert into tt values(1, "aaa"), (2, "bbb"), (3, "ccc");
Query OK, 3 rows affected (0.02 sec)
Records: 3 ?Duplicates: 0 ?Warnings: 0
?
[test]> select * from tt;
+----+------+
| c1 | c2 ? |
+----+------+
| ?1 | aaa ?|
| ?2 | bbb ?|
| ?3 | ccc ?|
+----+------+
3 rows in set (0.01 sec)
?
[test]>?
[test]> insert ignore into tt values(1, "aaa"), (2, "bbb"), (3, "ccc");
Query OK, 0 rows affected, 3 warnings (0.01 sec)
Records: 3 ?Duplicates: 3 ?Warnings: 3
?
[test]>?
[test]> select * from tt;
+----+------+
| c1 | c2 ? |
+----+------+
| ?1 | aaa ?|
| ?2 | bbb ?|
| ?3 | ccc ?|
+----+------+
3 rows in set (0.00 sec)

使用insert ignore into語(yǔ)句時(shí),如果主鍵沖突,只是提示"warnings"。

如果使用insert into語(yǔ)句時(shí),如果主鍵沖突直接報(bào)錯(cuò)。

2、沒有主鍵沖突時(shí),直接插入數(shù)據(jù)

insert into 與 insert ignore into 都是直接插入數(shù)據(jù)

[test]> create table t2(c1 int, c2 varchar(50))engine = xxx;
Query OK, 0 rows affected (0.05 sec)
?
[test]> insert into t2 values(1, "aaa"), (2, "bbb"), (3, "ccc");
Query OK, 3 rows affected (0.03 sec)
Records: 3 ?Duplicates: 0 ?Warnings: 0
?
GreatDB Cluster[test]> select * from t2;
+------+------+
| c1 ? | c2 ? |
+------+------+
| ? ?1 | aaa ?|
| ? ?2 | bbb ?|
| ? ?3 | ccc ?|
+------+------+
3 rows in set (0.00 sec)
?
[test]> insert into t2 values(1, "aaa"), (2, "bbb"), (3, "ccc");
Query OK, 3 rows affected (0.02 sec)
Records: 3 ?Duplicates: 0 ?Warnings: 0
?
?
[test]> insert into t2 values(1, "aaa"), (2, "bbb"), (3, "ccc");
Query OK, 3 rows affected (0.02 sec)
Records: 3 ?Duplicates: 0 ?Warnings: 0
?
[test]> select * from t2;
+------+------+
| c1 ? | c2 ? |
+------+------+
| ? ?1 | aaa ?|
| ? ?2 | bbb ?|
| ? ?3 | ccc ?|
| ? ?1 | aaa ?|
| ? ?2 | bbb ?|
| ? ?3 | ccc ?|
| ? ?1 | aaa ?|
| ? ?2 | bbb ?|
| ? ?3 | ccc ?|
+------+------+
9 rows in set (0.00 sec)
?
[test]> insert ignore into t2 values(1, "aaa"), (2, "bbb"), (3, "ccc");
Query OK, 3 rows affected (0.03 sec)
Records: 3 ?Duplicates: 0 ?Warnings: 0

因此,insert ignore into主要是忽略重復(fù)的記錄,直接插入數(shù)據(jù)。

insert ignore into--跳坑

首先,SQL語(yǔ)句:

<insert id="addTerm" parameterType="String">
        insert ignore into term(term) VALUES (#{term})
</insert>

然后,數(shù)據(jù)庫(kù)表:

                                 

簡(jiǎn)單的不能再簡(jiǎn)單的一張表:解釋一下,id是自增的,同時(shí)也是主鍵,term就是term嘍,其他的外鍵、索引什么的都沒有。

要求是:不能使term重復(fù)插入;

剛開始認(rèn)為就是判斷的插入的數(shù)據(jù)是否重復(fù),然后發(fā)現(xiàn)不是這樣的,它判斷的是主鍵或者索引是否重復(fù)(更準(zhǔn)確的來(lái)說(shuō)是忽略主鍵沖突時(shí)報(bào)的錯(cuò)誤)。

所以在這里要說(shuō)說(shuō)這個(gè)自增的id了,因?yàn)樵趇nsert ignore into插入的時(shí)候你的現(xiàn)在將要插入的數(shù)據(jù)的id已經(jīng)是增加一了,所以你的這個(gè)自增主鍵id是無(wú)論如何也不能相等的,所以自然你的數(shù)據(jù)也就不會(huì)聽話的把重復(fù)的數(shù)據(jù)不插入,這也就是為什么,即使ignore時(shí)沒有插入數(shù)據(jù)它的自增的鍵也會(huì)跳過(guò),所以這個(gè)要注意。

解決辦法就是添加個(gè)索引就歐克了唄

因?yàn)橹貜?fù)的時(shí)候它的自增的鍵依然會(huì)增加,所以當(dāng)數(shù)據(jù)的重復(fù)率很高的時(shí)候,可以考慮把自增的鍵搞成自己控制的一個(gè)因素,手動(dòng)自增,豈不美滋滋?

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • mysql 加了 skip-name-resolve不能鏈接數(shù)據(jù)庫(kù)問(wèn)題的解決方法

    mysql 加了 skip-name-resolve不能鏈接數(shù)據(jù)庫(kù)問(wèn)題的解決方法

    這篇文章主要介紹了mysql 加了 skip-name-resolve不能鏈接數(shù)據(jù)庫(kù)問(wèn)題的解決方法,需要的朋友可以參考下
    2016-04-04
  • MySQL transaction事務(wù)安全示例講解

    MySQL transaction事務(wù)安全示例講解

    這篇文章主要為大家介紹了MySQL數(shù)據(jù)庫(kù)事務(wù)安全transaction的示例講解教程,事務(wù)就是將一組操作封裝成一個(gè)執(zhí)行單元,要么一塊執(zhí)行成功,要么一塊失敗,不存在部分執(zhí)行成功的情況。事務(wù)保證了執(zhí)行的穩(wěn)定性,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-06-06
  • SQL語(yǔ)句詳解 MySQL update的正確用法

    SQL語(yǔ)句詳解 MySQL update的正確用法

    以下的文章主要介紹的是MySQL update 語(yǔ)句的實(shí)際用法,我們首先是以單表的UPDATE語(yǔ)句來(lái)引出實(shí)現(xiàn)MySQL update 語(yǔ)句的實(shí)際方案,以下就是文章的詳細(xì)內(nèi)容描述,望你看完之后會(huì)有收獲
    2012-01-01
  • MySQL中TINYINT、INT 和 BIGINT的具體使用

    MySQL中TINYINT、INT 和 BIGINT的具體使用

    MySQL提供了多種整數(shù)類型來(lái)滿足不同的數(shù)據(jù)存儲(chǔ)需求,本文主要介紹了MySQL中TINYINT、INT 和 BIGINT的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • MySQL8中的存儲(chǔ)引擎以及文件解析

    MySQL8中的存儲(chǔ)引擎以及文件解析

    這篇文章主要介紹了MySQL8中的存儲(chǔ)引擎以及文件使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 深入解析MySQL的窗口函數(shù)

    深入解析MySQL的窗口函數(shù)

    這篇文章主要介紹了深入解析MySQL的窗口函數(shù),窗口可以理解為記錄集合,窗口函數(shù)就是在滿足某種條件的記錄集合上執(zhí)行的特殊函數(shù),即:應(yīng)用在窗口內(nèi)的函數(shù),需要的朋友可以參考下
    2023-07-07
  • MySql數(shù)據(jù)庫(kù)中的子查詢與高級(jí)應(yīng)用淺析

    MySql數(shù)據(jù)庫(kù)中的子查詢與高級(jí)應(yīng)用淺析

    這篇文章主要給大家介紹了關(guān)于MySql數(shù)據(jù)庫(kù)中子查詢與高級(jí)應(yīng)用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 詳解如何校驗(yàn)MySQL及Oracle時(shí)間字段合規(guī)性

    詳解如何校驗(yàn)MySQL及Oracle時(shí)間字段合規(guī)性

    這篇文章主要為大家介紹了如何校驗(yàn)MySQL及Oracle時(shí)間字段合規(guī)性詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • MySQL數(shù)據(jù)庫(kù)如何開啟遠(yuǎn)程連接(多備份)

    MySQL數(shù)據(jù)庫(kù)如何開啟遠(yuǎn)程連接(多備份)

    多備份服務(wù)器在備份你的數(shù)據(jù)庫(kù)時(shí),必須能夠遠(yuǎn)程連接上你的數(shù)據(jù)庫(kù)。但是一般來(lái)說(shuō)mysql安裝時(shí)都是關(guān)閉遠(yuǎn)程連接的,因此,需要你開通mysql數(shù)據(jù)庫(kù)的遠(yuǎn)程訪問(wèn)權(quán)限。那么如何開啟呢
    2015-01-01
  • MySQL?中的?SQL_MODE?設(shè)置方法ANSI_QUOTES?選項(xiàng)解析與應(yīng)用小結(jié)

    MySQL?中的?SQL_MODE?設(shè)置方法ANSI_QUOTES?選項(xiàng)解析與應(yīng)用小結(jié)

    sql_mode是?MySQL?中的一個(gè)系統(tǒng)變量,用于控制?SQL?語(yǔ)句的解析和執(zhí)行方式,它由多個(gè)選項(xiàng)組成,每個(gè)選項(xiàng)都可以獨(dú)立設(shè)置,以滿足不同的應(yīng)用場(chǎng)景需求,這篇文章主要介紹了MySQL?中的?SQL_MODE?設(shè)置:ANSI_QUOTES?選項(xiàng)解析與應(yīng)用
    2024-12-12

最新評(píng)論

克山县| 嘉义县| 溧水县| 洪江市| 抚松县| 扎囊县| 永川市| 莒南县| 广元市| 伊春市| 平江县| 留坝县| 苏州市| 扬州市| 龙山县| 盐源县| 罗甸县| 红桥区| 德惠市| 双辽市| 台南市| 长治县| 根河市| 瓮安县| 宁陵县| 彰武县| 鸡泽县| 新丰县| 灵宝市| 辽阳县| 化州市| 榆树市| 和平县| 忻州市| 仲巴县| 罗甸县| 沭阳县| 乌鲁木齐市| 左权县| 巴塘县| 新余市|