sql >> Databasteknik >  >> RDS >> SQLite

SQLite Byt namn på kolumn

Sammanfattning :i den här handledningen lär du dig steg för steg hur du byter namn på en kolumn i en tabell i SQLite.

Introduktion till SQLite ALTER TABLE RENAME COLUMN-satsen

SQLite har lagt till stöd för att byta namn på kolumn sedan version 3.25.0 med ALTER TABLE uttalande med följande syntax:

ALTER TABLE table_name
RENAME COLUMN current_name TO new_name;Code language: SQL (Structured Query Language) (sql)

I denna syntax:

  • Ange först namnet på tabellen efter ALTER TABLE sökord.
  • För det andra, ange namnet på kolumnen som du vill byta namn på efter RENAME COLUMN nyckelord och det nya namnet efter TO sökord.

Exempel på SQLite ALTER TABLE RENAME COLUMN

Låt oss ta ett exempel på hur du använder ALTER TABLE RENAME COLUMN uttalande.

Skapa först en ny tabell som heter 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)

För det andra, infoga en ny rad i Locations tabell genom att använda INSERT uttalande:

INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');Code language: SQL (Structured Query Language) (sql)

För det tredje, byt namn på kolumnen Address till Street genom att använda ALTER TABLE RENAME COLUMN uttalande:

ALTER TABLE Locations
RENAME COLUMN Address TO Street;Code language: SQL (Structured Query Language) (sql)

För det fjärde, fråga efter data från Locations tabell:

SELECT * FROM Locations;Code language: SQL (Structured Query Language) (sql)

Utdata:

LocationId  Street                 City        State       Country
----------  ---------------------  ----------  ----------  ----------
1           3960 North 1st Street  San Jose    CA          USACode language: Shell Session (shell)

Till sist, visa schemat för Locations tabell:

.schema LocationsCode language: Shell Session (shell)

Utdata:

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)

Det gamla sättet att byta namn på kolumn

SQLite stödde inte ALTER TABLE RENAME COLUMN syntax före version 3.25.0.

Om du använder SQLite med en lägre version än 3.25.0 och inte kunde uppgradera, bör du följa dessa steg för att byta namn på en kolumn:

  • Starta först en transaktion.
  • Skapa för det andra en ny tabell vars struktur är densamma som den ursprungliga förutom kolumnen som du vill byta namn på.
  • För det tredje, kopiera data från den ursprungliga tabellen till den nya tabellen.
  • Fjärde, släpp den ursprungliga tabellen.
  • Femte, byt namn på den nya tabellen till den ursprungliga tabellen.
  • Slutligen genomför transaktionen.

Exempel på att byta namn på kolumn

Följande sats återskapar Locations tabell:

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)

Och den här INSERT uttalandet infogar en ny rad i Locations tabell:

INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');Code language: SQL (Structured Query Language) (sql)

Anta att du vill ändra kolumnen Address till Street .

Starta först en ny transaktion:

BEGIN TRANSACTION;Code language: SQL (Structured Query Language) (sql)

För det andra, skapa en ny tabell som heter LocationsTemp med samma struktur som Locations tabellen förutom Address kolumn:

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)

För det tredje, kopiera data från tabellen Locations till LocationsTemp :

INSERT INTO LocationsTemp(Street,City,State,Country)
SELECT Address,City,State,Country
FROM Locations;Code language: SQL (Structured Query Language) (sql)

För det fjärde, släpp Locations tabell:

DROP TABLE Locations;Code language: SQL (Structured Query Language) (sql)

För det femte, byt namn på tabellen LocationsTemp till Locations :

ALTER TABLE LocationsTemp 
RENAME TO Locations;Code language: SQL (Structured Query Language) (sql)

Slutligen genomför transaktionen:

COMMIT;Code language: SQL (Structured Query Language) (sql)

Om du frågar efter Locations tabell, kommer du att se kolumnen Address har bytt namn till Street :

SELECT * FROM Locations;Code language: SQL (Structured Query Language) (sql)

Här är resultatet:

Sammanfattning

  • Använd ALTER TABLE RENAME COLUMN för att byta namn på en kolumn i en tabell.
  • Om du använder SQLite 3.25.0 bör du uppgradera den och använda den nya syntaxen. Annars måste du följa stegen som beskrivs ovan för att byta namn på en kolumn.


  1. Behöver en datetime-kolumn i SQL Server som automatiskt uppdateras när posten ändras

  2. Varför återvänder pg_restore framgångsrikt men återställer inte min databas?

  3. Hur ändrar du datatypen för en kolumn i SQL Server?

  4. hur man beräknar saldon i ett bokföringsprogram med postgres fönsterfunktion