SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Khóa chính của SQLite AutoIncrement không hoạt động

Từ tài liệu:

Một bảng được tạo bằng cách sử dụng CREATE TABLE AS không có KEY CHÍNH và không có bất kỳ ràng buộc nào dưới bất kỳ hình thức nào. Giá trị mặc định của mỗi cột là NULL.

Bạn không cần phải thêm UNIQUE ràng buộc trên một COLUMN có PRIMARY KEY ràng buộc.
Giải thích:

Ràng buộc DUY NHẤT tương tự như ràng buộc CHÍNH CHÍNH, ngoại trừ một bảng duy nhất có thể có bất kỳ số lượng ràng buộc DUY NHẤT nào.

Thay vào đó, hãy thêm NOT NULL Đây là lý do tại sao:

Theo tiêu chuẩn SQL, PRIMARY KEY phải luôn ngụ ý KHÔNG ĐẦY ĐỦ. Thật không may, do lỗi trong một số phiên bản đầu tiên, đây không phải là trường hợp trong SQLite. Trừ khi cột là KHÓA CHÍNH INTEGER hoặc bảng là bảng KHÔNG CÓ ROWID hoặc cột được khai báo KHÔNG ĐẦY ĐỦ, SQLite cho phép các giá trị NULL trong cột KHÓA CHÍNH. SQLite có thể được cố định để phù hợp với tiêu chuẩn, nhưng làm như vậy có thể phá vỡ các ứng dụng kế thừa. Do đó, nó đã được quyết định chỉ ghi lại sự thật rằng SQLite cho phép NULL trong hầu hết các cột CHÍNH CHÍNH.


Tôi khuyên bạn nên sử dụng định nghĩa Cột này:

CREATE TABLE conversations (
    conversation_id INTEGER PRIMARY KEY NOT NULL AUTOINCREMENT,
...
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách cài đặt phiên bản Sqlite aar mới nhất khi sử dụng Room On Android

  2. Lỗi SQLiteConstraintException hiển thị sau khi bắt đầu mọi hoạt động

  3. Làm thế nào để Cache JSON được phân tích cú pháp để sử dụng Ngoại tuyến

  4. dữ liệu được tải từ cơ sở dữ liệu SQLitE không được lưu trong lớp mô hình ArrayList android

  5. phân trang trong listview