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 TABLEklíčová slova. - Za druhé zadejte název sloupce, který chcete přejmenovat, za
RENAME COLUMNklíčová slova a nový název zaTOklíč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 USACode language: Shell Session (shell)
Nakonec ukažte schéma Locations tabulka:
.schema LocationsCode 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 COLUMNpř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ů.