Tôi đang cố gắng tạo một bảng có khóa chính tăng tự động trong Sqlite3. Tôi không chắc chắn nếu điều này là thực sự có thể, nhưng tôi hy vọng chỉ phải chỉ định các lĩnh vực khác. Ví dụ:Có tăng tự động trong sqlite không?
CREATE TABLE people (id integer primary key auto increment, first_name varchar(20), last_name varchar(20));
Sau đó, khi tôi thêm một giá trị, tôi đã hy vọng để chỉ phải làm:
INSERT INTO people
VALUES ("John", "Smith");
Đây có phải là thậm chí có thể?
Tôi đang chạy sqlite3
dưới cygwin
trong Windows 7.
ROWID không hoàn toàn giống với tự động thực sự vì giá trị SAME có thể được tạo nhiều lần. Ví dụ, với một bảng trống, chèn 3 hàng cho hàng thứ ba ROWID là 3 như mong đợi. Tuy nhiên chèn 2 hàng, xóa hàng cuối cùng và chèn một hàng khác, cung cấp hàng thứ 3 được chèn vào ROWID là 2, giống như hàng thứ 2 có. Do đó, có một vấn đề nghiêm trọng rõ ràng nếu các bảng tham chiếu ROWID trong một bảng nơi các lần xóa xảy ra và việc xóa hoặc hủy ROWID cũng không được thực hiện trong các bảng có liên quan. – Nick
Trong trường hợp không rõ ràng từ câu trả lời, bạn có thể sử dụng ROWID trong câu lệnh chọn của bạn, ví dụ: 'chọn rowid từ người;' –