sql >> Databáze >  >> RDS >> SQLite

SQLite Přejmenovat sloupec

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 za TO 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          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 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ů.


  1. Jak nastavit primární klíč automatického zvýšení v PostgreSQL?

  2. Napište optimalizace pro Qualcomm Centriq 2400 v MariaDB 10.3.5 Release Candidate

  3. Jak nainstalovat postgres s NSIS se všemi parametry?

  4. Ukládání dat:REST vs. POSIX pro archivy a HSM