2008-12-18 13 views

cevap

14

Evet.

Bir işlemin içinde uygulamanız her şeyi görür. Bununla birlikte, başka hiçbir işlem değişikliğin hiçbir bölümünü görmez.

Bir işlemin noktası, bir dizi ifadenin veritabanında bir atomik değişiklik olarak görünmesidir.

Yaparsanız, işlemdeki tüm ifadeler kesinleştirilir ve diğer herkes etkilerini görebilir.

Geri alma yaparsanız, işlemdeki hiçbir ifade sonlandırılmaz ve veritabanında herhangi bir değişiklik olmaz.

Tüm bildirimler BTW bir işlemin parçası olamaz. DDL (Örneğin Oluşturma ve Bırakma) önceki işlemleri sonlandıracaktır.

4

Evet, işlem sırasında veya sonrasında last_insert_rowid() işlevini kullanabilirsiniz.

last_insert_rowid() işlevi, işlevi çağrılan veritabanı bağlantısından eklenen son satırın ROWID değerini döndürür. Başka bir deyişle

:

SQLite version 3.6.23 
Enter ".help" for instructions 
Enter SQL statements terminated with a ";" 

sqlite> create table T (C); 
sqlite> insert into T values ('hello'); 
sqlite> select last_insert_rowid(); 
1 
sqlite> BEGIN; 
sqlite> insert into T values ('test 2'); 
sqlite> select last_insert_rowid(); 
2 
sqlite> select rowid,* from T; 
1|hello 
2|test 2 
sqlite> ROLLBACK; 
sqlite> select last_insert_rowid(); 
2 
sqlite> select rowid,* from T; 
1|hello 
sqlite> 
İlgili konular