明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

解析mysql中常用的3種插入語(yǔ)句及其區(qū)別

[摘要]mysql中常用的三種插入數(shù)據(jù)的語(yǔ)句:1.insert into表示插入數(shù)據(jù),數(shù)據(jù)庫(kù)會(huì)檢查主鍵(PrimaryKey),如果出現(xiàn)重復(fù)會(huì)報(bào)錯(cuò);2.replace into表示插入替換數(shù)據(jù),需求表中有PrimaryKey,或者unique索引的話,如果數(shù)據(jù)庫(kù)已經(jīng)存在數(shù)據(jù),則用新數(shù)據(jù)替換,如果沒有數(shù)據(jù)效...

mysql中常用的三種插入數(shù)據(jù)的語(yǔ)句:

1.insert into表示插入數(shù)據(jù),數(shù)據(jù)庫(kù)會(huì)檢查主鍵(PrimaryKey),如果出現(xiàn)重復(fù)會(huì)報(bào)錯(cuò);

2.replace into表示插入替換數(shù)據(jù),需求表中有PrimaryKey,或者unique索引的話,如果數(shù)據(jù)庫(kù)已經(jīng)存在數(shù)據(jù),則用新數(shù)據(jù)替換,如果沒有數(shù)據(jù)效果則和insert into一樣;

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

3.insert ignore表示,如果中已經(jīng)存在相同的記錄,則忽略當(dāng)前新數(shù)據(jù);

下面通過(guò)代碼說(shuō)明之間的區(qū)別,如下:

create table testtb(
id int not null primary key,
name varchar(50),
age int
);
insert into 
testtb(id,name,age)values(1,"bb",13);
select * from testtb;
insert ignore into
testtb(id,name,age)values(1,"aa",13);
select * from testtb;//仍是1,“bb”,13,因?yàn)閕d是主鍵,出現(xiàn)主鍵重復(fù)但使用了ignore,則錯(cuò)誤被忽略
replace into 
testtb(id,name,age)values(1,"aa",12);
select * from testtb; //數(shù)據(jù)變?yōu)?,"aa",12

【相關(guān)推薦】

1. 分享insert into語(yǔ)句優(yōu)化的小技巧

2. 分享一條insert語(yǔ)句批量插入多條記錄教程

以上就是解析mysql中常用的三種插入語(yǔ)句及其區(qū)別的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。