Резюме :в този урок ще научите стъпка по стъпка как да преименувате колона от таблица в SQLite.
Въведение в SQLite ALTER TABLE RENAME COLUMN израз
SQLite добави поддръжка за преименуване на колона от версия 3.25.0 с помощта на ALTER TABLE
изявление със следния синтаксис:
ALTER TABLE table_name
RENAME COLUMN current_name TO new_name;
Code language: SQL (Structured Query Language) (sql)
В този синтаксис:
- Първо посочете името на таблицата след
ALTER TABLE
ключови думи. - Второ, посочете името на колоната, която искате да преименувате след
RENAME COLUMN
ключови думи и новото име следTO
ключова дума.
Пример за ПРЕИМЕНУВАНЕ НА КОЛОНА ЗА ПРОМЕНЯНЕ НА ТАБЛИЦА SQLite
Нека вземем пример за използване на ALTER TABLE RENAME COLUMN
изявление.
Първо създайте нова таблица, наречена 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)
Второ, поставете нов ред в Locations
таблица с помощта на INSERT
изявление:
INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');
Code language: SQL (Structured Query Language) (sql)
Трето, преименувайте колоната Address
до Street
с помощта на ALTER TABLE RENAME COLUMN
изявление:
ALTER TABLE Locations
RENAME COLUMN Address TO Street;
Code language: SQL (Structured Query Language) (sql)
Четвърто, заявете данни от Locations
таблица:
SELECT * FROM Locations;
Code language: SQL (Structured Query Language) (sql)
Изход:
LocationId Street City State Country
---------- --------------------- ---------- ---------- ----------
1 3960 North 1st Street San Jose CA USA
Code language: Shell Session (shell)
Накрая покажете схемата на Locations
таблица:
.schema Locations
Code language: Shell Session (shell)
Изход:
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)
Старият начин за преименуване на колона
SQLite не поддържа ALTER TABLE RENAME COLUMN
синтаксис преди версия 3.25.0.
Ако използвате SQLite с версия по-ниска от 3.25.0 и не можете да надстроите, тогава трябва да следвате тези стъпки, за да преименувате колона:
- Първо стартирайте транзакция.
- Второ, създайте нова таблица, чиято структура е същата като оригиналната, с изключение на колоната, която искате да преименувате.
- Трето, копирайте данните от оригиналната таблица в новата таблица.
- Четвърто, пуснете оригиналната таблица.
- Пето, преименувайте новата таблица на оригиналната таблица.
- Накрая извършете транзакцията.
Пример за преименуване на колона
Следното изявление пресъздава Locations
таблица:
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
оператор вмъква нов ред в Locations
таблица:
INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');
Code language: SQL (Structured Query Language) (sql)
Да предположим, че искате да промените колоната Address
до Street
.
Първо, започнете нова транзакция:
BEGIN TRANSACTION;
Code language: SQL (Structured Query Language) (sql)
Второ, създайте нова таблица, наречена LocationsTemp
със същата структура като Locations
таблица с изключение на Address
колона:
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)
Трето, копирайте данните от таблицата Locations
към LocationsTemp
:
INSERT INTO LocationsTemp(Street,City,State,Country)
SELECT Address,City,State,Country
FROM Locations;
Code language: SQL (Structured Query Language) (sql)
Четвърто, пуснете Locations
таблица:
DROP TABLE Locations;
Code language: SQL (Structured Query Language) (sql)
Пето, преименувайте таблицата LocationsTemp
до Locations
:
ALTER TABLE LocationsTemp
RENAME TO Locations;
Code language: SQL (Structured Query Language) (sql)
Накрая извършете транзакцията:
COMMIT;
Code language: SQL (Structured Query Language) (sql)
Ако направите заявка за Locations
таблица, ще видите, че колоната Address
е преименувано на Street
:
SELECT * FROM Locations;
Code language: SQL (Structured Query Language) (sql)
Ето изхода:
Резюме
- Използвайте
ALTER TABLE RENAME COLUMN
за да преименувате колона в таблица. - Ако използвате SQLite 3.25.0, трябва да го надстроите и да използвате новия синтаксис. В противен случай трябва да следвате стъпките, описани по-горе, за да преименувате колона.