SQLite
 sql >> Baza danych >  >> RDS >> SQLite

SQLite Zmień nazwę kolumny

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ę po TO 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          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 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. onCreate() funkcji RoomDatabase.Callback() nie został wywołany po pomyślnym wywołaniu funkcji .build()

  2. Limit SQLite

  3. Czy identyfikator zasobu zmienia się przy każdym uruchomieniu aplikacji?

  4. Oblicz liczbę sekund od określonej daty/godziny w SQLite

  5. Jak przekazać dane z aktywności do klasy java