日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

INSERT語句是最常見的SQL語句之一,MySQL中INSERT有其他形態的插入數據方式。下面了解一下mysql中常用的四種插入數據的語句:

INSERT INTO

1.insert into表示插入數據,數據庫會檢查主鍵(PrimaryKey),如果出現重復會報錯;除了這個之外還有一些配合的參數.

語法如下:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    [PARTITION (partition_name [, partition_name] ...)]
    [(col_name [, col_name] ...)]
    {VALUES | VALUE} (value_list) [, (value_list)] ...
    [ON DUPLICATE KEY UPDATE assignment_list]
  • DELAYED:是立刻返回一個標識,告訴上層程序,數據已經插入了,當表沒有被其它線程使用時,此行被插入,真實插入時間就不可控了。所以這樣的寫法對數據的安全性是沒有保障的。 延遲插入和替換在MySQL 5.6中是不推薦的。在MySQL 5.7,MySQL 8.0中,不支持延遲。服務器識別但忽略DELAYED關鍵字,將插入處理為非延遲插入,并生成erwarnlegacysyntaxconvert警告(“不再支持延遲插入”)。語句被轉換為INSERT”)。DELAYED關鍵字計劃在未來的版本中刪除。
  • LOW_PRIORITY:插入的執行將被延遲,直到沒有其他客戶端從表中讀取數據。這包括在現有客戶端正在讀取時以及INSERT LOWPRIORITY語句正在等待時開始讀取的其他客戶端。因此,對于發出INSERT LOWPRIORITY語句的客戶機,可能要等待很長時間。 LOWPRIORITY只影響只使用表級鎖的存儲引擎(如MyISAM、內存和合并)。 LOWPRIORITY通常不應該用于MyISAM表,因為這樣做會禁用并發插入
  • HIGH_PRIORITY:如果指定了HIGHPRIORITY,同時服務器采用–low-priority-updates選項啟動,則HIGHPRIORITY將覆蓋–low-priority-updates選項。這么做還會導 致同時進行的插入被取消。 【 lowpriorityupdates:如果設置為1,所有插入、更新、刪除和鎖表寫語句都將等待,直到受影響的表上沒有未決的選擇或鎖表讀取。使用{INSERT | REPLACE | DELETE | UPDATE} LOW_PRIORITY…僅降低一個查詢的優先級。這個變量只影響只使用表級鎖的存儲引擎(如MyISAM、MEMORY和MERGE)mysql的merge引擎類型允許把許多結構相同的表合并為一個表,Merge表有點類似于視圖。】
  • IGNORE:insert ignore表示,如果中已經存在相同的記錄,則忽略當前新數據,主鍵和唯一鍵為基準;
mysql> insert ignore  tinsert(id,name) values(3,'D');
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> show warnings;
+---------+------+---------------------------------------+
| Level   | Code | Message                               |
+---------+------+---------------------------------------+
| Warning | 1062 | Duplicate entry '3' for key 'PRIMARY' |
+---------+------+---------------------------------------+

INSERT INTO SELECT

把一張表的字段數據導入到另一張表中,執行語句會把整個數據會打包成一個事務執行。

MySQL INSERT 有哪4種形態?

 

注意:當從同一個表中選擇和插入時,MySQL創建一個內部臨時表來保存SELECT中的行,然后將這些行插入到目標表中。但是,不能使用INSERT INTO t…選擇……當t是臨時表時,從t開始,因為臨時表不能在同一語句中被引用兩次

REPLACE INTO

replace into 跟 insert 功能類似,不同點在于:replace into 首先嘗試插入數據到表中,

  1. 如果發現表中已經有此行數據(根據主鍵或者唯一索引判斷)則先刪除此行數據,然后插入新的數據;
  2. 否則,直接插入新數據;
  3. REPLACE,您必須同時擁有表的INSERT,UPDATE,DELETE權限。

語法:

REPLACE [LOW_PRIORITY | DELAYED]
    [INTO] tbl_name
    [PARTITION (partition_name [, partition_name] ...)]
    [(col_name [, col_name] ...)]
    {VALUES | VALUE} (value_list) [, (value_list)] ...

注意:插入數據的表必須有主鍵或者是唯一索引!否則的話,replace into 會直接插入數據,這將導致表中出現重復的數據。

1.下面看看binlog 解析:主鍵和唯一鍵同事存在的時候語句不一樣。

主鍵:是進行update操作。

主鍵+唯一鍵:delete+insert操作

MySQL INSERT 有哪4種形態?

 

2.但對于同一個數據所有行都一樣的時候replace into就不會進行更新操作。

INSERT INTO ON DUMPLICATE KEY UPDATE

...

? 接下來內容請訪問原文(https://www.modb.pro/db/28662?YYF)進行查看~

更多數據庫相關內容,可訪問墨天輪(https://www.modb.pro/?YYF)進行瀏覽。

MySQL INSERT 有哪4種形態?

 

分享到:
標簽:MySQL
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定