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

Tambahkan Kolom ke Tabel yang Ada di SQLite

Di SQLite, Anda dapat menggunakan ALTER TABLE pernyataan untuk menambahkan kolom ke tabel yang ada.

Ini sebenarnya adalah salah satu dari sedikit hal yang dapat Anda lakukan dengan ALTER TABLE pernyataan di SQLite. Satu-satunya hal yang dapat Anda lakukan dengan ALTER TABLE pernyataan di SQLite adalah mengubah nama tabel, mengubah nama kolom, dan menambahkan kolom baru ke tabel yang ada.

Contoh 1

Bayangkan kita memiliki tabel berikut:

CREATE TABLE Cats( 
    CatId INTEGER PRIMARY KEY, 
    CatName
);

Dan sekarang kita ingin menambahkan kolom bernama DOB . Kita bisa melakukannya dengan menggunakan kode berikut:

ALTER TABLE Cats ADD COLUMN DOB;

Sesederhana itu.

Pembatasan

Anda juga dapat memberikan spesifikasi lain untuk definisi, seperti batasan, dll, tetapi ada beberapa batasan.

Khususnya:

  • Kolom baru tidak boleh memiliki PRIMARY KEY atau UNIQUE kendala.
  • Kolom baru tidak boleh memiliki nilai default CURRENT_TIME , CURRENT_DATE , CURRENT_TIMESTAMP , atau ekspresi dalam tanda kurung.
  • Jika NOT NULL batasan ditentukan, maka kolom harus memiliki nilai default selain NULL .
  • Jika batasan kunci asing diaktifkan dan kolom dengan REFERENCES klausa ditambahkan, kolom harus memiliki nilai default NULL .
  • Jika kolom baru adalah kolom yang dibuat, tidak dapat STORED kolom. Itu bisa berupa VIRTUAL kolom sekalipun.

Contoh 2

Berikut contoh lain, kali ini saya menambahkan beberapa spesifikasi lagi untuk definisi kolom baru:

CREATE TABLE Dogs( 
    DogId INTEGER PRIMARY KEY, 
    DogName
);

Dan sekarang kita ingin menambahkan kolom bernama DOB . Kita bisa melakukannya dengan menggunakan kode berikut:

ALTER TABLE Dogs 
ADD COLUMN Score NOT NULL DEFAULT 0;

Periksa Perubahan

Ada beberapa cara untuk memeriksa struktur tabel di SQLite.

Salah satu caranya adalah dengan menggunakan PRAGMA table_info() pernyataan.

PRAGMA table_info(Dogs);

Hasil:

cid  name     type     notnull     dflt_value  pk
---  -------  -------  ----------  ----------  --
0    DogId    INTEGER  0                       1 
1    DogName           0                       0 
2    Score             1           0           0 

Kita dapat melihat kolom baru, dan kita dapat melihat bahwa kolom tersebut memiliki NOT NULL kendala, dan nilai defaultnya adalah 0 .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite tidak ada kolom seperti itu

  2. Bagaimana SQLite Nullif() Bekerja

  3. Bagaimana saya bisa menyisipkan gambar dalam database sqlite

  4. Izin Pengguna SQLite

  5. SQLite onUpgrade() frustrasi