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

Thêm một cột vào một bảng hiện có trong SQLite

Trong SQLite, bạn có thể sử dụng ALTER TABLE để thêm một cột vào bảng hiện có.

Đây thực sự là một trong số ít những điều bạn có thể làm với ALTER TABLE câu lệnh trong SQLite. Những điều duy nhất bạn có thể làm với ALTER TABLE câu lệnh trong SQLite là đổi tên bảng, đổi tên cột và thêm cột mới vào bảng hiện có.

Ví dụ 1

Hãy tưởng tượng chúng ta có bảng sau:

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

Và bây giờ chúng tôi muốn thêm một cột có tên là DOB . Chúng tôi có thể làm điều đó bằng cách sử dụng mã sau:

ALTER TABLE Cats ADD COLUMN DOB;

Nó đơn giản như vậy.

Hạn chế

Bạn cũng có thể cung cấp các thông số kỹ thuật khác cho định nghĩa, chẳng hạn như các ràng buộc, v.v., nhưng có một số hạn chế.

Cụ thể:

  • Cột mới không được có PRIMARY KEY hoặc UNIQUE ràng buộc.
  • Cột mới không được có giá trị mặc định là CURRENT_TIME , CURRENT_DATE , CURRENT_TIMESTAMP hoặc một biểu thức trong ngoặc đơn.
  • Nếu một NOT NULL ràng buộc được chỉ định, sau đó cột phải có giá trị mặc định khác với NULL .
  • Nếu các ràng buộc khóa ngoại được bật và một cột có REFERENCES được thêm vào, cột phải có giá trị mặc định là NULL .
  • Nếu cột mới là cột đã tạo, nó không thể được STORED cột. Nó có thể là một VIRTUAL cột mặc dù.

Ví dụ 2

Đây là một ví dụ khác, lần này tôi thêm một số thông số kỹ thuật khác vào định nghĩa của cột mới:

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

Và bây giờ chúng tôi muốn thêm một cột có tên là DOB . Chúng tôi có thể làm điều đó bằng cách sử dụng mã sau:

ALTER TABLE Dogs 
ADD COLUMN Score NOT NULL DEFAULT 0;

Kiểm tra các thay đổi

Có một số cách để kiểm tra cấu trúc của một bảng trong SQLite.

Một cách là sử dụng PRAGMA table_info() tuyên bố.

PRAGMA table_info(Dogs);

Kết quả:

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

Chúng ta có thể thấy cột mới và có thể thấy rằng nó có NOT NULL ràng buộc và giá trị mặc định của nó là 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. Chèn vào Cơ sở dữ liệu SQLite android

  2. Chỉ thêm dữ liệu vào cơ sở dữ liệu sqlite một lần và đọc nhiều lần

  3. Cách hoạt động của toán tử LIKE trong SQLite

  4. Lấy ID của một bản ghi mới được chèn vào cơ sở dữ liệu từ Uri trả về

  5. Tính số giây kể từ một ngày / giờ cụ thể trong SQLite