MYSQL中replace into的用法

2021-08-29 22:33:02 字數 2013 閱讀 7296

新建乙個test表,三個字段,id,title,uid,  id是自增的主鍵,uid是唯一索引;

插入兩條資料

insert into  test(title,uid) values ('123465','1001');

insert into test(title,uid) values ('123465','1002');

執行單條插入資料可以看到,執行結果如下:
[sql]insert into  test(title,uid) values ('123465','1001');

受影響的行: 1

使用 replace into插入資料時:

replace into test(title,uid) values ('1234657','1003');

執行結果:

[sql]replace into test(title,uid) values ('1234657','1003');

受影響的行: 1

當前資料庫test表所有資料如下:

當uid存在時,使用replace into 語句

replace into test(title,uid) values ('1234657','1001');

[sql]replace into test(title,uid) values ('1234657','1001');

受影響的行: 2

或replace into t(id, update_time) select 1, now();

replace into 跟 insert 功能類似,不同點在於:replace into 首先嘗試插入資料到表中,1. 如果發現表中已經有此行資料(根據主鍵或者唯一索引判斷)則先刪除此行資料,然後插入新的資料。 2. 否則,直接插入新資料。要注意的是:插入資料的表必須有主鍵或者是唯一索引!否則的話,replace into 會直接插入資料,這將導致表中出現重複的資料。

mysql replace into 有三種形式:

1. replace into tbl_name(col_name, ...) values(...)

2. replace into tbl_name(col_name, ...) select ...

3. replace into tbl_name set col_name=value, ...

第一種形式類似於insert into的用法,

第二種replace select的用法也類似於insert select,這種用法並不一定要求列名匹配,事實上,mysql甚至不關心select返回的列名,它需要的是列的位置。例如,replace into tb1( name, title, mood) select rname, rtitle, rmood from tb2;?這個例子使用replace into從?tb2中將所有資料匯入tb1中。

第三種replace set用法類似於update set用法,使用乙個例如「set col_name = col_name + 1」的賦值,則對位於右側的列名稱的引用會被作為default(col_name)處理。因此,該賦值相當於set col_name = default(col_name) + 1。

前兩種形式用的多些。其中 「into」 關鍵字可以省略,不過最好加上 「into」,這樣意思更加直觀。另外,對於那些沒有給予值的列,mysql 將自動為這些列賦上預設值。

希望能有助於大家,如有錯誤望路過大佬指點和海涵

**:

php中mysql函式 php中mysql有關函式

1.mysql query 一般是用來查詢資料裡面的資料。如 username post name sql select from members where login name username result mysql query sql 以上程式是檢測資料庫中是否存在表單傳送過來的使用者名稱...

mysql中 變數 mysql中的變數

toc 變數 mysql本質是一種程式語言,需要很多變數來儲存資料。mysql中很多的屬性控制都是通過mysql中固有的變數來實現的。系統變數 系統內部定義的變數,系統變數針對所有使用者 mysql客戶端 有效。檢視系統所有變數 show variables like pattern mysql允許...

mysql中 變數 MYSQL中的變數 MySQL

bitscn.com 只記很基礎的知識,細節東西太麻煩了,而且我也用不到。變數分為使用者變數與系統變數。使用者變數 使用者變數與資料庫連線有關,在這個連線中宣告的變數,在連線斷開的時候,就會消失。在此連線中宣告的變數無法在另一連線中使用。使用者變數的變數名的形式為 varname的形式。名字必須以 ...