SQLite中特殊的INSERT語句

大學霸發表於2017-04-21
SQLite中特殊的INSERT語句

在SQLite中,INSERT是基本語句,用來向表中插入資料。但是當表中存在欄位存在唯一、非空、檢查、主鍵等約束時,插入的資料很容易和約束衝突,造成插入操作失敗。為了解決這類問題,SQLite提供集中特殊的INSERT語句。下面依次介紹一下:

(1)INSERT OR REPLACE語句:如果引起約束衝突,則取消插入操作。如果是與唯一、主鍵約束衝突,則將已存在的資料進行更新。如果是與非空約束操作,並且存在預設值設定,則將衝突的空列使用預設值替代,然後插入;否則,按照INSERT OR ABORT方式執行。如果是與檢查約束衝突,則按照INSERT OR ABORT執行。

(2)INSERT OR ABORT語句:如果引起約束衝突,則取消該插入操作。如果在一個事務中,不會回滾當前事務,繼續執行當前事務的後續操作。

(3)INSERT OR ROLLBACK語句:如果引起約束衝突,則取消該插入操作。如果在一個事務中,會回滾當前事務。

(4)INSERT OR FAIL語句:如果引起約束衝突,則取消該插入操作。如果在一個事務中,不會回滾當前事務,但會取消當前事務的後續操作。

(5)INSERT OR IGNORE語句:如果引起約束衝突,則取消該插入操作。如果在一個事務中,不會回滾當前事務,繼續執行當前事務的後續操作。與INSERT OR ABORT不同的,它不會觸發SQLITE_CONSTRAINT錯誤。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-2137751/,如需轉載,請註明出處,否則將追究法律責任。

相關文章