欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL Replace INTO的使用

 更新時間:2008年04月25日 15:03:07   作者:  
今天DST里面有個插件作者問我關于Replace INTO和INSERT INTO的區(qū)別,我和他說晚上上我的blog看吧,那時候還在忙,現(xiàn)在從MYSQL手冊里找了點東西,MYSQL手冊里說REPLACE INTO說的還是比較詳細的.
REPLACE的運行與INSERT很相像。只有一點除外,如果表中的一個舊記錄與一個用于PRIMARY KEY或一個UNIQUE索引的新記錄具有相同的值,則在新記錄被插入之前,舊記錄被刪除。請參見13.2.4節(jié),“INSERT語法”。

注意,除非表有一個PRIMARY KEY或UNIQUE索引,否則,使用一個REPLACE語句沒有意義。該語句會與INSERT相同,因為沒有索引被用于確定是否新行復制了其它的行。

所有列的值均取自在REPLACE語句中被指定的值。所有缺失的列被設置為各自的默認值,這和INSERT一樣。您不能從當前行中引用值,也不能在新行中使用值。如果您使用一個例如“SET col_name = col_name + 1”的賦值,則對位于右側(cè)的列名稱的引用會被作為DEFAULT(col_name)處理。因此,該賦值相當于SET col_name = DEFAULT(col_name) + 1。


為了能夠使用REPLACE,您必須同時擁有表的INSERT和DELETE權(quán)限。

REPLACE語句會返回一個數(shù),來指示受影響的行的數(shù)目。該數(shù)是被刪除和被插入的行數(shù)的和。如果對于一個單行REPLACE該數(shù)為1,則一行被插入,同時沒有行被刪除。如果該數(shù)大于1,則在新行被插入前,有一個或多個舊行被刪除。如果表包含多個唯一索引,并且新行復制了在不同的唯一索引中的不同舊行的值,則有可能是一個單一行替換了多個舊行。

受影響的行數(shù)可以容易地確定是否REPLACE只添加了一行,或者是否REPLACE也替換了其它行:檢查該數(shù)是否為1(添加)或更大(替換)。

如果您正在使用C API,則可以使用mysql_affected_rows()函數(shù)獲得受影響的行數(shù)。

目前,您不能在一個子查詢中,向一個表中更換,同時從同一個表中選擇。

以下是所用算法的更詳細的說明(該算法也用于LOAD DATA…REPLACE):

1. 嘗試把新行插入到表中

2. 當因為對于主鍵或唯一關鍵字出現(xiàn)重復關鍵字錯誤而造成插入失敗時:

a. 從表中刪除含有重復關鍵字值的沖突行

b. 再次嘗試把新行插入到表中

今天喉嚨疼死我了,閃人睡覺去.

使用格式:

REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name [(col_name,…)]
VALUES ({expr | DEFAULT},…),(…),…
或:

REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name
SET col_name={expr | DEFAULT}, …
或:

REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name [(col_name,…)]
SELECT … 

相關文章

  • 圖文詳解Mysql索引的最左前綴原則

    圖文詳解Mysql索引的最左前綴原則

    最左前綴原則是發(fā)生在復合索引上的,只有復合索引才會有所謂的左和右之分,下面這篇文章主要給大家介紹了關于Mysql索引的最左前綴原則的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • MySQL高可用MMM方案安裝部署分享

    MySQL高可用MMM方案安裝部署分享

    這篇文章主要介紹了MySQL高可用MMM方案安裝部署方法,需要的朋友可以參考下
    2014-02-02
  • mysql解決遠程不能訪問的二種方法

    mysql解決遠程不能訪問的二種方法

    mysql解決遠程不能訪問的二種方法,需要的朋友可以參考一下
    2013-04-04
  • Mysql修改server uuid的方法分享

    Mysql修改server uuid的方法分享

    這篇文章主要給大家介紹了關于Mysql修改server uuid的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-09-09
  • MYSQL必知必會讀書筆記第三章之顯示數(shù)據(jù)庫

    MYSQL必知必會讀書筆記第三章之顯示數(shù)據(jù)庫

    MySQL是一種開放源代碼的關系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言--結(jié)構(gòu)化查詢語言(SQL)進行數(shù)據(jù)庫管理。接下來通過本文給大家介紹MYSQL必知必會讀書筆記第三章之顯示數(shù)據(jù)庫,感興趣的朋友參考下吧
    2016-05-05
  • windows下安裝mysql8.0.18的教程(社區(qū)版)

    windows下安裝mysql8.0.18的教程(社區(qū)版)

    本文章簡單介紹一下mysql在windows下的安裝方式,主要介紹了mysql社區(qū)版8.0.18版本,本文給大家介紹的非常詳細,需要的朋友參考下吧
    2020-01-01
  • SQL字符串以及數(shù)字常用操作匯總

    SQL字符串以及數(shù)字常用操作匯總

    本篇文章是對SQL字符串以及數(shù)字的常用操作進行了詳細的總結(jié)與分析,需要的朋友參考下
    2013-06-06
  • 修改MySQL的數(shù)據(jù)庫引擎為INNODB的方法

    修改MySQL的數(shù)據(jù)庫引擎為INNODB的方法

    本文主要介紹了修改MySQL的數(shù)據(jù)庫引擎為INNODB的方法,希望能對您有所幫助。
    2015-09-09
  • 修改MYSQL密碼的幾種常用方法總結(jié)

    修改MYSQL密碼的幾種常用方法總結(jié)

    以下是對修改MYSQL密碼的幾種常用方法進行了總結(jié)介紹,需要的朋友可以過來參考下
    2013-08-08
  • Mysql中通用表達式WITH?AS語句的使用實例代碼

    Mysql中通用表達式WITH?AS語句的使用實例代碼

    with as也叫子查詢,用來定義一個sql片段,且該片段會被整個sql語句反復使用很多次,這個sql片段就相當于是一個公用臨時表,下面這篇文章主要給大家介紹了關于Mysql中通用表達式WITH?AS語句使用的相關資料,需要的朋友可以參考下
    2022-08-08

最新評論