Shrnutí :v tomto tutoriálu se krok za krokem naučíte přejmenovat sloupec tabulky v SQLite.
Úvod do příkazu SQLite ALTER TABLE RENAME COLUMN
SQLite přidal podporu pro přejmenování sloupce od verze 3.25.0 pomocí ALTER TABLE
příkaz s následující syntaxí:
ALTER TABLE table_name
RENAME COLUMN current_name TO new_name;
Code language: SQL (Structured Query Language) (sql)
V této syntaxi:
- Nejprve zadejte název tabulky za
ALTER TABLE
klíčová slova. - Za druhé zadejte název sloupce, který chcete přejmenovat, za
RENAME COLUMN
klíčová slova a nový název zaTO
klíčové slovo.
Příklad SQLite ALTER TABLE RENAME COLUMN
Vezměme si příklad použití ALTER TABLE RENAME COLUMN
prohlášení.
Nejprve vytvořte novou tabulku s názvem 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)
Za druhé vložte nový řádek do Locations
tabulky pomocí INSERT
prohlášení:
INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');
Code language: SQL (Structured Query Language) (sql)
Za třetí, přejmenujte sloupec Address
do Street
pomocí ALTER TABLE RENAME COLUMN
prohlášení:
ALTER TABLE Locations
RENAME COLUMN Address TO Street;
Code language: SQL (Structured Query Language) (sql)
Za čtvrté, dotazujte se na data z Locations
tabulka:
SELECT * FROM Locations;
Code language: SQL (Structured Query Language) (sql)
Výstup:
LocationId Street City State Country
---------- --------------------- ---------- ---------- ----------
1 3960 North 1st Street San Jose CA USA
Code language: Shell Session (shell)
Nakonec ukažte schéma Locations
tabulka:
.schema Locations
Code language: Shell Session (shell)
Výstup:
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)
Starý způsob přejmenování sloupce
SQLite nepodporoval ALTER TABLE RENAME COLUMN
syntaxe před verzí 3.25.0.
Pokud používáte SQLite s verzí nižší než 3.25.0 a nelze upgradovat, měli byste sloupec přejmenovat podle následujících kroků:
- Nejprve zahajte transakci.
- Zadruhé vytvořte novou tabulku, jejíž struktura je stejná jako ta původní kromě sloupce, který chcete přejmenovat.
- Za třetí, zkopírujte data z původní tabulky do nové tabulky.
- Za čtvrté, zrušte původní tabulku.
- Za páté, přejmenujte novou tabulku na původní tabulku.
- Nakonec potvrďte transakci.
Příklad přejmenování sloupce
Následující příkaz znovu vytvoří Locations
tabulka:
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)
A toto INSERT
příkaz vloží nový řádek do Locations
tabulka:
INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');
Code language: SQL (Structured Query Language) (sql)
Předpokládejme, že chcete změnit sloupec Address
do Street
.
Nejprve zahajte novou transakci:
BEGIN TRANSACTION;
Code language: SQL (Structured Query Language) (sql)
Za druhé vytvořte novou tabulku s názvem LocationsTemp
se stejnou strukturou jako Locations
tabulky kromě Address
sloupec:
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)
Za třetí, zkopírujte data z tabulky Locations
na LocationsTemp
:
INSERT INTO LocationsTemp(Street,City,State,Country)
SELECT Address,City,State,Country
FROM Locations;
Code language: SQL (Structured Query Language) (sql)
Za čtvrté, vypusťte Locations
tabulka:
DROP TABLE Locations;
Code language: SQL (Structured Query Language) (sql)
Za páté, přejmenujte tabulku na LocationsTemp
do Locations
:
ALTER TABLE LocationsTemp
RENAME TO Locations;
Code language: SQL (Structured Query Language) (sql)
Nakonec transakci potvrďte:
COMMIT;
Code language: SQL (Structured Query Language) (sql)
Pokud zadáte dotaz na Locations
tabulky, uvidíte, že sloupec Address
byl přejmenován na Street
:
SELECT * FROM Locations;
Code language: SQL (Structured Query Language) (sql)
Zde je výstup:
Shrnutí
- Použijte
ALTER TABLE RENAME COLUMN
přejmenovat sloupec v tabulce. - Pokud používáte SQLite 3.25.0, měli byste jej upgradovat a použít novou syntaxi. V opačném případě musíte pro přejmenování sloupce postupovat podle výše popsaných kroků.