Używam MySQL. Mam tabelę o nazwie EMP, a teraz muszę utworzyć jeszcze jedną tabelę (EMP_TWO) z tym samym schematem, tymi samymi kolumnami i tymi samymi ograniczeniami. Jak mogę to zrobić?
Używam MySQL. Mam tabelę o nazwie EMP, a teraz muszę utworzyć jeszcze jedną tabelę (EMP_TWO) z tym samym schematem, tymi samymi kolumnami i tymi samymi ograniczeniami. Jak mogę to zrobić?
Odpowiedzi:
Aby utworzyć nową tabelę na podstawie innej struktury / ograniczeń tabel, użyj:
CREATE TABLE new_table LIKE old_table;
Aby w razie potrzeby skopiować dane, użyj
INSERT INTO new_table SELECT * FROM old_table;
Uważaj na uwagi dotyczące opcji LIKE:
Użyj funkcji LIKE, aby utworzyć pustą tabelę na podstawie definicji innej tabeli, w tym wszelkich atrybutów kolumn i indeksów zdefiniowanych w oryginalnej tabeli:
UTWÓRZ TABELĘ new_table LIKE original_table; Kopia jest tworzona przy użyciu tej samej wersji formatu przechowywania tabeli, co oryginalna tabela. Do oryginalnej tabeli wymagane jest uprawnienie SELECT.
LIKE działa tylko dla tabel podstawowych, a nie dla widoków.
Funkcja CREATE TABLE ... LIKE nie zachowuje żadnych opcji tabel DATA DIRECTORY ani INDEX DIRECTORY, które zostały określone dla oryginalnej tabeli, ani żadnych definicji kluczy obcych.
LIKEw CREATEoświadczeniu.
CREATE TABLE new_db.new_table LIKE old_db.old_table:)
Dlaczego nie pójdziesz w ten sposób
CREATE TABLE new_table LIKE Select * from Old_Table;
lub Możesz przejść, filtrując dane w ten sposób
CREATE TABLE new_table LIKE Select column1, column2, column3 from Old_Table where column1 = Value1;
Aby mieć to samo ograniczenie w nowej tabeli, musisz najpierw utworzyć schemat, a następnie przejść do danych do utworzenia schematu
CREATE TABLE new_table LIKE Some_other_Table;
likeiw select *jednym zestawieniu? otrzymuję błąd. Sprawdź również tę odpowiedź stackoverflow.com/questions/10147565/create-table-like-a1-as-a2