sql >> Database teknologi >  >> RDS >> SQLite

SQLite Omdøb kolonne

Oversigt :i denne øvelse lærer du trin for trin, hvordan du omdøber en kolonne i en tabel i SQLite.

Introduktion til SQLite ALTER TABLE RENAME COLUMN-sætning

SQLite har tilføjet understøttelse af omdøbning af kolonne siden version 3.25.0 ved hjælp af ALTER TABLE sætning med følgende syntaks:

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

I denne syntaks:

  • Først skal du angive navnet på tabellen efter ALTER TABLE søgeord.
  • For det andet skal du angive navnet på den kolonne, du vil omdøbe efter RENAME COLUMN nøgleord og det nye navn efter TO søgeord.

SQLite ALTER TABLE RENAME KOLONNE eksempel

Lad os tage et eksempel på brug af ALTER TABLE RENAME COLUMN erklæring.

Først skal du oprette en ny tabel kaldet 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)

For det andet skal du indsætte en ny række i Locations tabel ved at bruge INSERT erklæring:

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

For det tredje skal du omdøbe kolonnen Address til Street ved at bruge ALTER TABLE RENAME COLUMN erklæring:

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

For det fjerde, forespørg data fra Locations tabel:

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

Output:

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

Vis endelig skemaet for Locations tabel:

.schema LocationsCode language: Shell Session (shell)

Output:

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)

Den gamle måde at omdøbe kolonne på

SQLite understøttede ikke ALTER TABLE RENAME COLUMN syntaks før version 3.25.0.

Hvis du bruger SQLite med versionen lavere end 3.25.0 og ikke kunne opgradere, skal du følge disse trin for at omdøbe en kolonne:

  • Start først en transaktion.
  • For det andet skal du oprette en ny tabel, hvis struktur er den samme som den oprindelige bortset fra den kolonne, du vil omdøbe.
  • For det tredje skal du kopiere data fra den oprindelige tabel til den nye tabel.
  • For det fjerde skal du slippe den oprindelige tabel.
  • For det femte skal du omdøbe den nye tabel til den oprindelige tabel.
  • Til sidst skal du forpligte transaktionen.

Eksempel på omdøbning af kolonne

Følgende sætning genskaber Locations tabel:

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)

Og denne INSERT statement indsætter en ny række i Locations tabel:

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

Antag, at du vil ændre kolonnen Address til Street .

Start først en ny transaktion:

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

For det andet skal du oprette en ny tabel kaldet LocationsTemp med samme struktur som Locations tabel undtagen Address kolonne:

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)

For det tredje skal du kopiere data fra tabellen Locations til LocationsTemp :

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

For det fjerde skal du slippe Locations tabel:

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

For det femte skal du omdøbe tabellen LocationsTemp til Locations :

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

Til sidst skal du forpligte transaktionen:

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

Hvis du forespørger på Locations tabel, vil du se, at kolonnen Address er blevet omdøbt til Street :

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

Her er outputtet:

Oversigt

  • Brug ALTER TABLE RENAME COLUMN for at omdøbe en kolonne i en tabel.
  • Hvis du bruger SQLite 3.25.0, bør du opgradere det og bruge den nye syntaks. Ellers skal du følge trinene beskrevet ovenfor for at omdøbe en kolonne.


  1. Håndtering af en GDI-ressourcelækage

  2. java.sql.SQLEundtagelse:I/O-fejl:Forbindelsen blev nulstillet i linux-serveren

  3. UTL_FILE.FOPEN() procedure accepterer ikke sti til mappe?

  4. Hvordan reparerer jeg en InnoDB-tabel?