我使用SQLite數據庫和.NET的System.Data.Sqlite實現。SQLite事務和LastInsertRowID
我將循環中的記錄插入到多個表中(示例由兩個表給出)。我第一次開始一個事務,然後再插入一條記錄到表1。然後我去connection.LastInsertRowID
以及與此值一起插入一條記錄(如外鍵)到表2
我這樣做是爲我所有的記錄,然後提交交易。
爲什麼這樣做會影響性能?如果由於事務尚未提交而未真正輸入記錄,那麼如何知道LastInsertRowID
值?這個值是否需要每次從前面的步驟中猜出來,從而降低性能?
現在無法驗證,但我懷疑它會選擇下一個數字,只是放棄數字(即在序列中留下一個空洞),如果事務回滾。 – 2014-09-26 14:21:39
這是不好的?插入前在同一事務中刪除記錄會怎麼樣? – Jens 2014-09-26 14:26:39