Dari dokumentasi:
Tabel yang dibuat menggunakan CREATE TABLE AS tidak memiliki PRIMARY KEY dan tidak ada batasan apa pun. Nilai default setiap kolom adalah NULL.
Anda tidak perlu menambahkan UNIQUE
batasan pada KOLOM yang memiliki PRIMARY KEY
kendala.
Penjelasan:
Batasan UNIQUE mirip dengan batasan PRIMARY KEY, kecuali bahwa satu tabel mungkin memiliki sejumlah batasan UNIQUE.
Sebagai gantinya tambahkan NOT NULL
.Inilah sebabnya:
Menurut standar SQL, PRIMARY KEY harus selalu menyiratkan NOTNULL. Sayangnya, karena bug di beberapa versi awal, hal ini tidak terjadi di SQLite. Kecuali jika kolomnya adalah INTEGER PRIMARY KEY atau tabelnya adalah tabel TANPA ROWID atau kolom tersebut dinyatakan NOT NULL, SQLite mengizinkan nilai NULL dalam kolom PRIMARY KEY. SQLite dapat diperbaiki agar sesuai dengan standar, tetapi hal itu dapat merusak aplikasi lama. Oleh karena itu, telah diputuskan untuk hanya mendokumentasikan fakta bahwa SQLite mengizinkan NULL di sebagian besar kolom PRIMARY KEY.
Saya sarankan menggunakan definisi Kolom ini:
CREATE TABLE conversations (
conversation_id INTEGER PRIMARY KEY NOT NULL AUTOINCREMENT,
...
}