日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

行語句mysql insert操作詳解

系統 2649 0

本文純屬個人見解,是對前面學習的結總,如有描述不準確的地方還請高手指正~

????

mysql insert作操詳解

????

INSERT法語:

????

INSERT [LOW_PRIORITY |DELAYED| HIGH_PRIORITY] [IGNORE]

????

[INTO]tbl_name[(col_name,...)]

????

VALUES ({expr| DEFAULT},...),(...),...

????

[ON DUPLICATE KEY UPDATEcol_name=expr, ... ]

????

或:

????

INSERT [LOW_PRIORITY |DELAYED| HIGH_PRIORITY] [IGNORE]

????

[INTO]tbl_name

????

SETcol_name={expr| DEFAULT}, ...

????

[ON DUPLICATE KEY UPDATEcol_name=expr, ... ]

????

或:

????

INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]

????

[INTO]tbl_name[(col_name,...)]

????

SELECT ...

????

[ON DUPLICATE KEY UPDATEcol_name=expr, ... ]

????

一、DELAYED的應用

????

應用延遲插入作操

????

DELAYED調節符應于用INSERT和REPLACE語句。當DELAYED插入作操達到的時候,服務器把據數行放入一個隊列中,并當即給客戶端返回一個態狀信息,這樣客戶端以可就在據數表被真正地插入錄記之前續繼停止作操了。如果讀取者從該據數表中讀取據數,隊列中的據數就會被保持著,直到沒有讀取者為止。接著服務器開始插入延遲據數行(delayed-row)隊列中的據數行。在插入作操的同時,服務器還要檢查是不是有新的讀取請求達到和待等。如果有,延遲據數行隊列就被掛起,答應讀取者續繼作操。當沒有讀取者的時候,服務器再次開始插入延遲的據數行。這個程過直一停止,直到隊列空了為止。

????

幾點要注意事項:

????

· INSERT DELAYED該應僅于用指定值清單的INSERT語句。服務器疏忽于用INSERT DELAYED...SELECT語句的DELAYED。

????

· 服務器疏忽于用INSERT DELAYED...ON DUPLICATE UPDATE語句的DELAYED。

????

· 因為行在被插入前,語句立刻返回,所以您不能應用LAST_INSERT_ID()來獲得AUTO_INCREMENT值。AUTO_INCREMENT值可能由語句生成。

????

· 對于SELECT語句,DELAYED行可不見,直到這些行確切被插入了為止。

????

· DELAYED在屬從制復服務器中被疏忽了,因為DELAYED不會在屬從服務器中發生與主服務器不一樣的據數。

????

注意,前目在隊列中的各行只保存在存儲器中,直到它們被插入到表中為止。這意味著,如果您強行止中了MySQLd(例如,應用kill -9)或者如果mysqld不測停止,則全部沒有被寫入磁盤的行會都喪失。

????每日一道理
自己把自己說服了,是一種理智的勝利;自己被自己感動了,是一種心靈的升華;自己把自己征服了,是一種人生的成功。

????

二、IGNORE的應用

????

IGNORE是MySQL于對相標準SQL的擴展。如果在新表中有復重關鍵字,或者當STRICT式模啟動后涌現告警,則應用IGNORE制控ALTER TABLE的行運。如果沒有指定IGNORE,當復重關鍵字錯誤發生時,制復作操被棄放,返回前一驟步。如果指定了IGNORE,則對于有復重關鍵字的行,只應用第一行,其它有沖突的行被除刪。并且,對錯誤值停止修正,使之盡量親近準確值。

????

?

????

insert ignore into tb(...) value(...)

????

這樣不必校驗是不是存在了,有則疏忽,無則添加。

????

三、 ON DUPLICATE KEY UPDATE的應用

????

如果您指定了ON DUPLICATE KEY UPDATE,并且插入行后會致導在一個UNIQUE索引或PRIMARY KEY中涌現復重值,則執行舊行UPDATE。例如,如果列a被義定為UNIQUE,并且含包值1,則以下兩個語句擁有雷同的果效:mysql>INSERT INTO table (a,b,c) VALUES (1,2,3)

????

->ON DUPLICATE KEY UPDATE c=c+1;

????

mysql>UPDATE table SET c=c+1 WHERE a=1;

????

如果行作為新錄記被插入,則受影響行的值為1;如果原有的錄記被更新,則受影響行的值為2。

????

釋注:如果列b也是一唯列,則INSERT與此UPDATE語句當相:

????

mysql>UPDATE table SET c=c+1 WHERE a=1 OR b=2 LIMIT 1;

????

如果a=1 OR b=2與多個行向匹配,則只有一個行被更新。平日,您該應盡量免避對帶有多個一唯關鍵字的表應用ON DUPLICATE KEY句子。

????

您可以在UPDATE句子中應用VALUES(col_name)數函從INSERT...UPDATE語句的INSERT分部引用列值。換句話說,如果沒有發生復重關鍵字沖突,則UPDATE句子中的VALUES(col_name)可以引用被插入的col_name的值。本數函別特適于用多行插入。VALUES()數函只在INSERT...UPDATE語句中有意思,其它時候會返回NULL。

????

示例:

????

mysql>INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6)

????

->ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);

????

本語句與以下兩個語句作用雷同:

????

mysql>INSERT INTO table (a,b,c) VALUES (1,2,3)

????

->ON DUPLICATE KEY UPDATE c=3;

????

mysql>INSERT INTO table (a,b,c) VALUES (4,5,6)

????

->ON DUPLICATE KEY UPDATE c=9;

????

當您應用ON DUPLICATE KEY UPDATE時,DELAYED選項被疏忽。

????

結總:DELAYED 做為倏地插入,是不并很關懷失效性,進步插入性能。

????

ignore 只存眷主鍵對應錄記是不存在,無則添加,有則疏忽。

????

ON DUPLICATE KEY UPDATE 在添加時作操,存眷非主鍵列,注意與ignore的區分。有則更新指定列,無則添加。

文章結束給大家分享下程序員的一些笑話語錄: 有一天,一個男人穿越森林的時候,聽到一個細微的聲音叫住他。他低頭一看,是一只青蛙。
“如果你親我一下,我會變成一個美麗的公主哦?!蹦腥艘谎圆话l,把青蛙撿起來,放入口袋。
“如果你親我一下,我會變成一個美麗的公主哦。而且,我會告訴我遇到的每一個人,你是多么聰明和勇敢,你是我的英雄?!蹦腥税亚嗤苣贸鰜恚瑢χ⑽⒁恍Γ职阉呕乜诖?
“如果你親我一下,我會變成一個美麗的公主,然后我愿意成為你的愛人一星期?!蹦腥擞职亚嗤苣贸鰜恚瑢χ⑽⒁恍?,把它放回口袋。
“如果你親我一下,我會變成一個美麗的公主,然后我愿意成為你的愛人一年,而且你可以對我做任何事。”再一次,男人把青蛙拿出來,對著它微微一笑,又把它放回口袋。
  最后,青蛙無力地問:“我開出了這么好的條件,為什么你還不肯吻我?”男人說:“我是一個程序員,我可沒時間和什么公主鬼混。不過,擁有一個會說話的青蛙,倒是蠻酷的?!?

行語句mysql insert操作詳解


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 滦南县| 娄烦县| 壤塘县| 云南省| 金堂县| 客服| 文化| 碌曲县| 霸州市| 保定市| 香港 | 隆回县| 博乐市| 临高县| 竹溪县| 土默特左旗| 崇明县| 蓝田县| 连云港市| 太白县| 内丘县| 台南县| 兴国县| 德阳市| 开平市| 新邵县| 峡江县| 简阳市| 囊谦县| 西城区| 托克逊县| 剑川县| 嘉义市| 尼勒克县| 白水县| 江西省| 西乌珠穆沁旗| 辽阳县| 达孜县| 泰和县| 策勒县|