Bagaimana cara mengambil id yang dimasukkan setelah memasukkan baris dalam SQLite menggunakan Python? Saya punya tabel seperti ini:
id INT AUTOINCREMENT PRIMARY KEY,
username VARCHAR(50),
password VARCHAR(50)
Saya menyisipkan baris baru dengan data contoh username="test"
dan password="test"
. Bagaimana cara mengambil id yang dihasilkan dengan cara transaksi yang aman? Ini untuk solusi situs web, di mana dua orang mungkin memasukkan data secara bersamaan. Saya tahu saya bisa mendapatkan baris membaca terakhir, tetapi saya tidak berpikir bahwa transaksi aman. Adakah yang bisa memberi saya nasihat?
last_insert_rowid()
fungsi SQL , yang memungkinkan Anda untuk memasukkan id baris terakhir sebagai kunci asing dalam pernyataan masukkan berikutnya , seluruhnya dalam SQL.last_insert_rowid
bawah github.com/ghaering/pysqlite/blob/… (yang tidak dijamin threadsafe tetapi tampaknya satu-satunya pilihan FWIW). Lihat juga stackoverflow.com/q/2127138/32453INSERT
tetapi tidak bekerja untukUPDATE
. Tetapi ketika memperbarui baris, Anda mungkin sudah memiliki id baris yang sesuai (hanya butuh beberapa saat untuk mencari tahu ini ...).Semua kredit ke @ Martijn Pieters di komentar:
Anda dapat menggunakan fungsi ini
last_insert_rowid()
:sumber