Jak skopiować, sklonować lub zduplikować dane, strukturę i indeksy tabeli MySQL do nowej?
To właśnie znalazłem do tej pory.
Spowoduje to skopiowanie danych i struktury, ale nie indeksów:
create table {new_table} select * from {old_table};
Spowoduje to skopiowanie struktury i indeksów, ale nie danych:
create table {new_table} like {old_table};
Odpowiedzi:
Aby skopiować z indeksami i wyzwalaczami, wykonaj następujące 2 zapytania:
Aby skopiować tylko strukturę i dane, użyj tego:
Pytałem o to wcześniej:
Skopiuj tabelę MySQL wraz z indeksami
źródło
select *
będzie działać w dużych tabelach.AUTO_INCREMENT
wartości.Oprócz powyższego rozwiązania możesz użyć
AS
go w jednym wierszu.źródło
create table {new_table} select * from {old_table};
nie ma odpowiedzi i nie zawiera żadnych nowych informacji.Sposób MySQL:
źródło
Przejdź do phpMyAdmin i wybierz oryginalną tabelę, a następnie wybierz zakładkę „ Operacje ” w obszarze „ Kopiuj tabelę do (table.table) ”. Wybierz bazę danych, którą chcesz skopiować, i dodaj nazwę nowej tabeli.
źródło
Znalazłem tę samą sytuację, a moje podejście było następujące:
SHOW CREATE TABLE <table name to clone>
: da ciCreate Table
składnię tabeli, którą chcesz sklonowaćCREATE TABLE
zapytanie, zmieniając nazwę tabeli, aby sklonować tabelę.Spowoduje to utworzenie dokładnej repliki tabeli, którą chcesz sklonować wraz z indeksami. Jedyne, czego potrzebujesz, to zmienić nazwy indeksów (jeśli jest to wymagane).
źródło
Lepszym sposobem na zduplikowanie tabeli jest użycie tylko
DDL
instrukcji. W ten sposób, niezależnie od liczby rekordów w tabeli, możesz natychmiast wykonać duplikację.Moim celem jest:
Pozwala to uniknąć
INSERT AS SELECT
stwierdzenia, że w przypadku tabeli z dużą ilością rekordów wykonanie może zająć trochę czasu.Proponuję również utworzyć procedurę PLSQL jako następujący przykład:
Miłego dnia! Alex
źródło
Rozwijając tę odpowiedź, można użyć procedury składowanej:
Co spowoduje utworzenie zduplikowanej tabeli o nazwie
tableName_20181022235959
If when whenwyniki:
Realizacja
źródło
Po wypróbowaniu powyższego rozwiązania wymyślam własną drogę.
Moje rozwiązanie jest trochę manualne i wymaga DBMS.
Najpierw wyeksportuj dane.
Po drugie, otwórz dane eksportu.
Po trzecie, zastąp starą nazwę tabeli nową nazwą tabeli.
Po czwarte, zmień całą nazwę wyzwalacza w danych (używam MySQL i pokazuje błąd, gdy nie zmieniam nazwy wyzwalacza).
Po piąte, zaimportuj zmodyfikowane dane SQL do bazy danych.
źródło
Spróbuj tego :
Wybrałem 4 kolumny ze starej tabeli i utworzyłem nową tabelę.
źródło
DLA MySQL
DLA MSSQL Użyj
MyDatabase
:Ten SQL jest używany do kopiowania tabel, tutaj zawartość oldCustomersTable zostanie skopiowana
newCustomersTable
.Upewnij się, że
newCustomersTable
nie istnieje w bazie danych.źródło