sql >> Database >  >> RDS >> SQLite

SQLite Kolom hernoemen

Samenvatting :in deze tutorial leer je stap voor stap hoe je een kolom van een tabel hernoemt in SQLite.

Inleiding tot SQLite ALTER TABLE RENAME COLUMN-instructie

SQLite heeft ondersteuning toegevoegd voor het hernoemen van kolommen sinds versie 3.25.0 met behulp van de ALTER TABLE statement met de volgende syntaxis:

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

In deze syntaxis:

  • Geef eerst de naam van de tabel op na de ALTER TABLE trefwoorden.
  • Ten tweede, specificeer de naam van de kolom die u wilt hernoemen na de RENAME COLUMN trefwoorden en de nieuwe naam achter de TO zoekwoord.

SQLite ALTER TABLE RENAME COLUMN voorbeeld

Laten we een voorbeeld nemen van het gebruik van de ALTER TABLE RENAME COLUMN verklaring.

Maak eerst een nieuwe tabel met de naam 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)

Ten tweede, voeg een nieuwe rij toe in de Locations tabel met behulp van de INSERT verklaring:

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

Ten derde, hernoem de kolom Address naar Street door gebruik te maken van de ALTER TABLE RENAME COLUMN verklaring:

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

Ten vierde, gegevens opvragen van de Locations tafel:

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

Uitgang:

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

Toon tenslotte het schema van de Locations tafel:

.schema LocationsCode language: Shell Session (shell)

Uitgang:

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)

De oude manier om een ​​kolom te hernoemen

SQLite ondersteunde de ALTER TABLE RENAME COLUMN . niet syntaxis vóór versie 3.25.0.

Als je de SQLite gebruikt met een versie lager dan 3.25.0 en niet kon upgraden, volg dan deze stappen om een ​​kolom te hernoemen:

  • Start eerst een transactie.
  • Ten tweede, maak een nieuwe tabel waarvan de structuur hetzelfde is als de originele, behalve de kolom die u wilt hernoemen.
  • Ten derde, kopieer gegevens van de originele tabel naar de nieuwe tabel.
  • Ten vierde, laat de originele tabel vallen.
  • Ten vijfde, hernoem de nieuwe tafel naar de originele tafel.
  • Leg ten slotte de transactie vast.

Naam kolom voorbeeld

De volgende verklaring herschept de Locations tafel:

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)

En deze INSERT statement voegt een nieuwe rij in de Locations tafel:

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

Stel dat u de kolom Address . wilt wijzigen naar Street .

Start eerst een nieuwe transactie:

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

Maak vervolgens een nieuwe tabel met de naam LocationsTemp met dezelfde structuur als de Locations tabel behalve het Address kolom:

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)

Ten derde, kopieer gegevens uit de tabel Locations naar LocationsTemp :

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

Ten vierde, laat de Locations . vallen tafel:

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

Ten vijfde, hernoem de tabel LocationsTemp naar Locations :

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

Leg ten slotte de transactie vast:

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

Als u de Locations . opvraagt tabel, ziet u dat de kolom Address is hernoemd naar Street :

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

Hier is de uitvoer:

Samenvatting

  • Gebruik de ALTER TABLE RENAME COLUMN om een ​​kolom in een tabel te hernoemen.
  • Als je SQLite 3.25.0 gebruikt, moet je het upgraden en de nieuwe syntaxis gebruiken. Anders moet u de hierboven beschreven stappen volgen om de naam van een kolom te wijzigen.


  1. Tekstcompressie in PostgreSQL

  2. Verschillende abonnementen voor identieke servers

  3. Vraag time-out van web-app, maar werkt prima vanuit beheerstudio

  4. Kan ik blindelings alle mysql_-functies vervangen door mysqli_?