Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Duplikuj, kopiuj lub twórz kopie zapasowe tabel w MySQL, MariaDB, Oracle, PostgreSQL, DB2 i SQLite za pomocą funkcji Utwórz tabelę jako SQL

W systemie baz danych Oracle, PostgreSQL, DB2, MySQL, MariaDB i SQLite istnieje fajna funkcja poleceń o nazwie Utwórz tabelę jako co pozwala na łatwe zduplikowanie tabeli z danymi z innej lub kilku innych tabel. Polecenia SQL można również użyć do dokładnego „skopiowania i wklejenia” tabeli lub wykonania kopii zapasowej danych tabeli przed wykonaniem zapytania manipulacji danymi na oryginalnej tabeli, na wypadek gdyby skrypt zawierał błąd, a data kopii zapasowej może być użyta do przywrócenia pierwotnego stanu . Utwórz tabelę jako utworzy nową tabelę zbudowaną z zawartości zbioru danych lub zbioru wyników pobranego przez Wybierz Zapytanie SQL z tabeli, która już istnieje w bazie danych.

Składnia instrukcji SQL Create Table As to:

CREATE TABLE table_name [ ( column_name [, ...] ) ]
             AS select [ * ! ( column_name [, ...] ) ] FROM source_table_name

Zastąp table_name nazwą nowej tabeli, która zostanie utworzona. Nazwa kolumny jest opcjonalna, gdzie można określić wiele kolumn, umieszczając ich nazwy na liście rozdzielanej przecinkami. W przeciwnym razie struktura nowej tabeli będzie oparta na nazwach kolumn, typach i liczbie kolumn zwróconych przez instrukcję Select wraz z danymi wierszy. Jeśli określisz nazwę kolumny, pamiętaj, że powinna być taka sama liczba kolumn, jaka jest zwracana przez select.

Instrukcja select na końcu polecenia create table as musi być poprawna, a liczba wybranych celów jest zgodna z liczbą kolumn na opcjonalnej liście kolumn poprzedzającej klauzulę AS. Może to być złożona instrukcja SELECT, która pobiera dane z wielu tabel. Jeśli opcjonalna lista kolumn jest określona w nawiasach, gwiazdka (*) nie może być dłużej używana w instrukcji select.

Na przykład

CREATE TABLE demo_backup
AS SELECT * FROM demo;

Powyższe polecenie SQL utworzy dokładną tabelę kopii zapasowej replik o nazwie demo_backup z danymi i strukturą (kolumnami) tabeli demonstracyjnej.

Możliwy błąd, jeśli określisz opcjonalną listę kolumn:

BŁĄD:CREATE TABLE/AS SELECT ma niezgodną liczbę kolumn

Jeśli napotkasz ten komunikat o błędzie, jest to spowodowane tym, że opcjonalna lista kolumn w nawiasach zawiera inną liczbę wierszy niż zwraca instrukcja select. Sprawdź dwukrotnie, czy określona liczba kolumn jest taka sama, jak oczekiwanych wyników z wybranego zestawu wyników.

Uwaga:Niektóre systemy baz danych obsługują składnię CREATE TABLE … LIKE, która tworzy pustą tabelę na podstawie definicji innej tabeli, w tym atrybutów kolumn i indeksów zdefiniowanych w oryginalnej tabeli. Różnica polega na tym, że składnia CREATE TABLE … SELECT również kopiuje dane.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zmiana strefy czasowej MySQL?

  2. Korzystanie z tunelowania SSH jako alternatywy VPN

  3. 4 sposoby na wyświetlenie listy wszystkich widoków w MySQL

  4. Czy Hibernate może współpracować ze składnią ON DUPLICATE KEY UPDATE w MySQL?

  5. W przypadku aktualizacji zduplikowanego klucza tak samo jak w przypadku wstawiania