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

Cột đổi tên SQLite

Tóm tắt :trong hướng dẫn này, bạn sẽ học từng bước cách đổi tên một cột của bảng trong SQLite.

Giới thiệu về câu lệnh SQLite ALTER TABLE RENAME COLUMN

SQLite đã thêm hỗ trợ đổi tên cột kể từ phiên bản 3.25.0 bằng cách sử dụng ALTER TABLE câu lệnh với cú pháp sau:

ALTER TABLE table_name
RENAME COLUMN current_name TO new_name;Code language: SQL (Structured Query Language) (sql)

Trong cú pháp này:

  • Đầu tiên, chỉ định tên của bảng sau ALTER TABLE từ khóa.
  • Thứ hai, chỉ định tên của cột mà bạn muốn đổi tên sau RENAME COLUMN từ khóa và tên mới sau TO từ khóa.

Ví dụ về SQLite ALTER TABLE RENAME COLUMN

Hãy lấy một ví dụ về việc sử dụng ALTER TABLE RENAME COLUMN tuyên bố.

Đầu tiên, tạo một bảng mới có tên là Locations :

CREATE TABLE Locations(
	LocationId INTEGER PRIMARY KEY,
	Address TEXT NOT NULL,
	City TEXT NOT NULL,
	State TEXT NOT NULL,
	Country TEXT NOT NULL
);Code language: SQL (Structured Query Language) (sql)

Thứ hai, chèn một hàng mới vào Locations bảng bằng cách sử dụng INSERT tuyên bố:

INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');Code language: SQL (Structured Query Language) (sql)

Thứ ba, đổi tên cột Address đến Street bằng cách sử dụng ALTER TABLE RENAME COLUMN tuyên bố:

ALTER TABLE Locations
RENAME COLUMN Address TO Street;Code language: SQL (Structured Query Language) (sql)

Thứ tư, truy vấn dữ liệu từ Locations bảng:

SELECT * FROM Locations;Code language: SQL (Structured Query Language) (sql)

Đầu ra:

LocationId  Street                 City        State       Country
----------  ---------------------  ----------  ----------  ----------
1           3960 North 1st Street  San Jose    CA          USACode language: Shell Session (shell)

Cuối cùng, hiển thị giản đồ của Locations bảng:

.schema LocationsCode language: Shell Session (shell)

Đầu ra:

CREATE TABLE Locations(
        LocationId INTEGER PRIMARY KEY,
        Street TEXT NOT NULL,
        City TEXT NOT NULL,
        State TEXT NOT NULL,
        Country TEXT NOT NULL
);Code language: SQL (Structured Query Language) (sql)

Cách cũ để đổi tên cột

SQLite không hỗ trợ ALTER TABLE RENAME COLUMN cú pháp trước phiên bản 3.25.0.

Nếu bạn đang sử dụng SQLite với phiên bản thấp hơn 3.25.0 và không thể nâng cấp, thì bạn nên làm theo các bước sau để đổi tên cột:

  • Trước tiên, hãy bắt đầu một giao dịch.
  • Thứ hai, tạo một bảng mới có cấu trúc giống như bảng ban đầu ngoại trừ cột bạn muốn đổi tên.
  • Thứ ba, sao chép dữ liệu từ bảng gốc sang bảng mới.
  • Thứ tư, bỏ bảng gốc.
  • Thứ năm, đổi tên bảng mới thành bảng ban đầu.
  • Cuối cùng, hãy thực hiện giao dịch.

Ví dụ về đổi tên cột

Câu lệnh sau đây tạo lại Locations bảng:

DROP TABLE IF EXISTS Locations;
CREATE TABLE Locations(
	LocationId INTEGER PRIMARY KEY,
	Address TEXT NOT NULL,
	State TEXT NOT NULL,
	City TEXT NOT NULL,
	Country TEXT NOT NULL
);Code language: SQL (Structured Query Language) (sql)

INSERT này câu lệnh chèn một hàng mới vào Locations bảng:

INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');Code language: SQL (Structured Query Language) (sql)

Giả sử rằng bạn muốn thay đổi cột Address đến Street .

Đầu tiên, hãy bắt đầu một giao dịch mới:

BEGIN TRANSACTION;Code language: SQL (Structured Query Language) (sql)

Thứ hai, tạo một bảng mới có tên LocationsTemp có cùng cấu trúc với Locations bảng ngoại trừ Address cột:

CREATE TABLE LocationsTemp(
	LocationId INTEGER PRIMARY KEY,
	Street TEXT NOT NULL,
	City TEXT NOT NULL,
	State TEXT NOT NULL,
	Country TEXT NOT NULL
);
Code language: SQL (Structured Query Language) (sql)

Thứ ba, sao chép dữ liệu từ bảng Locations đến LocationsTemp :

INSERT INTO LocationsTemp(Street,City,State,Country)
SELECT Address,City,State,Country
FROM Locations;Code language: SQL (Structured Query Language) (sql)

Thứ tư, thả Locations bảng:

DROP TABLE Locations;Code language: SQL (Structured Query Language) (sql)

Thứ năm, đổi tên bảng LocationsTemp tới Locations :

ALTER TABLE LocationsTemp 
RENAME TO Locations;Code language: SQL (Structured Query Language) (sql)

Cuối cùng, thực hiện giao dịch:

COMMIT;Code language: SQL (Structured Query Language) (sql)

Nếu bạn truy vấn Locations , bạn sẽ thấy rằng cột Address đã được đổi tên thành Street :

SELECT * FROM Locations;Code language: SQL (Structured Query Language) (sql)

Đây là kết quả:

Tóm tắt

  • Sử dụng ALTER TABLE RENAME COLUMN để đổi tên một cột trong bảng.
  • Nếu bạn đang sử dụng SQLite 3.25.0, bạn nên nâng cấp nó và sử dụng cú pháp mới. Nếu không, bạn cần làm theo các bước được mô tả ở trên để đổi tên cột.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLiteOpenHelper onCreate () / onUpgrade () chạy khi nào?

  2. Định dạng số bằng dấu phẩy trong SQLite

  3. Khi nào tôi nên đóng con trỏ và db?

  4. Khi nào phương thức SQLiteOpenHelper onCreate được gọi?

  5. Cách cập nhật bảng với activeandroid sau khi thêm cột mới