SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

SQLite PRIMARY key AutoIncrement tidak berfungsi

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menghasilkan Angka Acak dalam Rentang Tertentu di SQLite

  2. Program Android untuk mengonversi database SQLite ke excel

  3. Kembalikan Baris yang Hanya Mengandung Karakter Non-Alfanumerik di SQLite

  4. Apakah ada metode yang membantu menyelesaikan masalah umum SQLite?

  5. Ruang Android:Bagaimana Cara Memigrasikan Penggantian Nama Kolom?