使用insert ignore語句:
insert
ignore
into
table
(col1,col2)
values
('value1'
,'value2'
);
例如插入資料:
insert
ignore
into user_info (last_name,first_name)
values
('zhang'
,'san'
);
這樣一來,如果表中已經存在last_name='zhang』且first_name='san』的資料,就不會插入,如果沒有就會插入一條新資料。
上面的是一種用法,也可以用 insert… select來實現,這裡就不舉例了。
這種有兩種操作方法:
1、insert 中on duplicate key update的使用
如果指定了on duplicate key update,並且插入行後會導致在乙個unique索引或primary key**現重複值,則執行update。例如,如果列a被定義為unique,並且包含值1,則以下兩個語句具有相同的效果:
insert
into
table
(a,b,c)
values(1
,2,3
)onduplicate
keyupdate c=c+
1;
update
table
set c=c+
1where a=
1;
如果行作為新記錄被插入,則受影響行的值為1;如果原有的記錄被更新,則受影響行的值為2。
2、replace的使用
使用replace的最大好處就是可以將delete和insert合二為一,形成乙個原子操作。這樣就可以不必考慮在同時使用delete和insert時新增事務等複雜操作了。在使用replace時,表中必須有唯一索引,而且這個索引所在的字段不能允許空值,否則replace就和insert完全一樣的。在執行replace後,系統返回了所影響的行數,如果返回1,說明在表中並沒有重複的記錄,如果返回2,說明有一條重覆記錄,系統自動先呼叫了delete刪除這條記錄,然後再記錄用insert來插入這條記錄。
語法和insert非常的相似,如下面的replace語句是插入或更新一條記錄。
replace
into users (id,name,age)
values
(123
,'zhangsan',22
);
MySQL之 實現無資料插入,有資料更新
使用insert ignore語句 insert ignore into table col1,col2 values value1 value2 例如插入資料 insert ignore into user info last name,first name values liu yazhuang...
無資料庫日誌檔案恢復資料庫方法
方法一 1.新建乙個同名的資料庫 2.再停掉sql server 注意不要分離資料庫 3.用原資料庫的資料檔案覆蓋掉這個新建的資料庫 4.再重啟sql server 5.此時開啟企業管理器時會出現置疑,先不管,執行下面的語句 注意修改其中的資料庫名 6.完成後一般就可以訪問資料庫中的資料了,這時,資...
MySQL實現無資料插入,有資料更新的例項教程
使用insert ignore語句 insert ignore into table col1,col2 values value1 value2 例如插入資料 insert ignore into user info last name,first name values liu yazhuang...