mysql insert語句精闢之處

1.使用INSERT插入多條記錄

這裏並不是我們所想insert into select語法,mysql提供了另一種解決方案,就是使用一條INSERT語句來插入多條記錄。這並不是標準的SQL語法,所以無法在oracle等數據庫中使用。

語法:insert into tablename(col1,col2,col3) value (a,a,a),(b,b,b),(c,c,c),(d,d,d);這樣就可以像表中直接插入4條記錄。

這個語法也是我在導mysqldump文件的時候無意中發現的,由於導出表數據比較大,dump文件中的insert全部是上面的寫法,這和oracle 有非常大的區別,plsql是不支持這種寫法的,所以再數據庫遷移的時候對於這種語句要做特殊處理。

2.mysql還提供REPLACE語句

此語句的作用是可以將DELETE和INSERT合二爲一,這樣就可以不必考慮在同時使用DELETE和INSERT時添加事務等複雜操作了。在使用REPLACE時,表中必須有唯一索引,而且這個索引所在的字段不能允許空值,否則REPLACE就和INSERT完全一樣的。在執行REPLACE後,系統返回了所影響的行數,如果返回1,說明在表中並沒有重複的記錄,如果返回2,說明有一條重複記錄,系統自動先調用了 DELETE刪除這條記錄,然後再記錄用INSERT來插入這條記錄。如果返回的值大於2,那說明有多個唯一索引,有多條記錄被刪除和插入。

REPLACE語句和insert語法一樣,也支持REPLACE into tablename(col1,col2,col3) value (a,a,a),(b,b,b),(c,c,c),(d,d,d);


介於這兩種寫法或許在開發中會提供不少方便之處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章