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,
...
}