Podsumowanie :w tym samouczku nauczysz się krok po kroku, jak zmienić nazwę kolumny tabeli w SQLite.
Wprowadzenie do instrukcji SQLite ALTER TABLE RENAME COLUMN
SQLite dodał obsługę zmiany nazwy kolumny od wersji 3.25.0 przy użyciu ALTER TABLE
oświadczenie o następującej składni:
ALTER TABLE table_name
RENAME COLUMN current_name TO new_name;
Code language: SQL (Structured Query Language) (sql)
W tej składni:
- Najpierw podaj nazwę tabeli po
ALTER TABLE
słowa kluczowe. - Po drugie, określ nazwę kolumny, której nazwę chcesz zmienić po
RENAME COLUMN
słowa kluczowe i nową nazwę poTO
słowo kluczowe.
SQLite ALTER TABLE RENAME COLUMN przykład
Weźmy przykład użycia kolumny ALTER TABLE RENAME COLUMN
oświadczenie.
Najpierw utwórz nową tabelę o nazwie 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)
Po drugie, wstaw nowy wiersz do Locations
tabeli za pomocą INSERT
oświadczenie:
INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');
Code language: SQL (Structured Query Language) (sql)
Po trzecie, zmień nazwę kolumny Address
na Street
za pomocą ALTER TABLE RENAME COLUMN
oświadczenie:
ALTER TABLE Locations
RENAME COLUMN Address TO Street;
Code language: SQL (Structured Query Language) (sql)
Po czwarte, zapytaj o dane z Locations
tabela:
SELECT * FROM Locations;
Code language: SQL (Structured Query Language) (sql)
Wyjście:
LocationId Street City State Country
---------- --------------------- ---------- ---------- ----------
1 3960 North 1st Street San Jose CA USA
Code language: Shell Session (shell)
Na koniec pokaż schemat Locations
tabela:
.schema Locations
Code language: Shell Session (shell)
Wyjście:
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)
Stary sposób na zmianę nazwy kolumny
SQLite nie obsługuje kolumny ALTER TABLE RENAME COLUMN
składnia przed wersją 3.25.0.
Jeśli używasz SQLite w wersji niższej niż 3.25.0 i nie możesz zaktualizować, wykonaj następujące kroki, aby zmienić nazwę kolumny:
- Najpierw rozpocznij transakcję.
- Po drugie, utwórz nową tabelę, której struktura jest taka sama jak oryginalna, z wyjątkiem kolumny, której nazwę chcesz zmienić.
- Po trzecie, skopiuj dane z oryginalnej tabeli do nowej.
- Po czwarte, upuść oryginalną tabelę.
- Po piąte, zmień nazwę nowej tabeli na oryginalną.
- Na koniec zatwierdź transakcję.
Przykład zmiany nazwy kolumny
Poniższa instrukcja odtwarza Locations
tabela:
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)
I to INSERT
instrukcja wstawia nowy wiersz do Locations
tabela:
INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');
Code language: SQL (Structured Query Language) (sql)
Załóżmy, że chcesz zmienić kolumnę Address
na Street
.
Najpierw rozpocznij nową transakcję:
BEGIN TRANSACTION;
Code language: SQL (Structured Query Language) (sql)
Po drugie, utwórz nową tabelę o nazwie LocationsTemp
o takiej samej strukturze jak Locations
tabela z wyjątkiem Address
kolumna:
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)
Po trzecie, skopiuj dane z tabeli Locations
do LocationsTemp
:
INSERT INTO LocationsTemp(Street,City,State,Country)
SELECT Address,City,State,Country
FROM Locations;
Code language: SQL (Structured Query Language) (sql)
Po czwarte, upuść Locations
tabela:
DROP TABLE Locations;
Code language: SQL (Structured Query Language) (sql)
Po piąte, zmień nazwę tabeli LocationsTemp
do Locations
:
ALTER TABLE LocationsTemp
RENAME TO Locations;
Code language: SQL (Structured Query Language) (sql)
Na koniec zatwierdź transakcję:
COMMIT;
Code language: SQL (Structured Query Language) (sql)
Jeśli zapytasz Locations
tabeli, zobaczysz, że kolumna Address
został przemianowany na Street
:
SELECT * FROM Locations;
Code language: SQL (Structured Query Language) (sql)
Oto wynik:
Podsumowanie
- Użyj
ALTER TABLE RENAME COLUMN
zmienić nazwę kolumny w tabeli. - Jeśli używasz SQLite 3.25.0, powinieneś go zaktualizować i użyć nowej składni. W przeciwnym razie musisz wykonać czynności opisane powyżej, aby zmienić nazwę kolumny.