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 TABLEtừ khóa. - Thứ hai, chỉ định tên của cột mà bạn muốn đổi tên sau
RENAME COLUMNtừ khóa và tên mới sauTOtừ 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)
Và 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.