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 TABLEsłowa kluczowe. - Po drugie, określ nazwę kolumny, której nazwę chcesz zmienić po
RENAME COLUMNsłowa kluczowe i nową nazwę poTOsł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 USACode language: Shell Session (shell)
Na koniec pokaż schemat Locations tabela:
.schema LocationsCode 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 COLUMNzmienić 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.