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 sauTO
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 USA
Code language: Shell Session (shell)
Cuối cùng, hiển thị giản đồ của Locations
bảng:
.schema Locations
Code 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.