Bagaimana cara menyalin atau mengkloning atau menggandakan data, struktur, dan indeks tabel MySQL ke yang baru?
Inilah yang saya temukan sejauh ini.
Ini akan menyalin data dan struktur, tetapi bukan indeks:
create table {new_table} select * from {old_table};
Ini akan menyalin struktur dan indeks, tetapi bukan data:
create table {new_table} like {old_table};
Jawaban:
Untuk menyalin dengan indeks dan pemicu lakukan 2 pertanyaan ini:
Untuk menyalin hanya struktur dan data gunakan yang ini:
Saya sudah menanyakan ini sebelumnya:
Salin tabel MySQL termasuk indeks
sumber
select *
akan bekerja di tabel besar.AUTO_INCREMENT
nilai.Terlepas dari solusi di atas, Anda dapat menggunakannya
AS
untuk membuatnya dalam satu baris.sumber
create table {new_table} select * from {old_table};
bukan jawaban dan tidak memberikan informasi baru.Cara MySQL:
sumber
Pergi ke phpMyAdmin dan pilih tabel asli Anda lalu pilih tab " Operations " di area " Copy table to (database.table) ". Pilih database tempat Anda ingin menyalin dan menambahkan nama untuk tabel baru Anda.
sumber
Saya menemukan situasi yang sama dan pendekatan yang saya ambil adalah sebagai berikut:
SHOW CREATE TABLE <table name to clone>
: Ini akan memberi AndaCreate Table
sintaks untuk tabel yang ingin Anda klonCREATE TABLE
kueri dengan mengubah nama tabel untuk mengkloning tabel.Ini akan membuat replika tabel yang ingin Anda klon beserta indeksnya. Satu-satunya hal yang Anda butuhkan adalah mengubah nama indeks (jika diperlukan).
sumber
Cara yang lebih baik untuk menduplikasi tabel hanya menggunakan
DDL
pernyataan. Dengan cara ini, terlepas dari jumlah catatan dalam tabel, Anda dapat melakukan duplikasi secara instan.Tujuan saya adalah:
Ini menghindari
INSERT AS SELECT
pernyataan bahwa, dalam kasus tabel dengan banyak catatan dapat memakan waktu untuk dieksekusi.Saya juga menyarankan untuk membuat prosedur PLSQL sebagai contoh berikut:
Semoga harimu menyenangkan! Alex
sumber
Memperluas jawaban ini, seseorang dapat menggunakan prosedur tersimpan:
Yang akan menghasilkan tabel duplikat yang disebut
tableName_20181022235959
Jika dipanggil kapanhasil:
Penerapan
sumber
Setelah saya mencoba solusi di atas, saya datang dengan cara saya sendiri.
Solusi saya sedikit manual dan membutuhkan DBMS.
Pertama, ekspor data.
Kedua, buka data ekspor.
Ketiga, ganti nama tabel lama dengan nama tabel baru.
Keempat, ubah semua nama pemicu dalam data (saya menggunakan MySQL dan itu menunjukkan kesalahan ketika saya tidak mengubah nama pemicu).
Kelima, impor data SQL Anda yang diedit ke database.
sumber
Coba ini :
Saya memilih 4 kolom dari tabel lama dan membuat tabel baru.
sumber
UNTUK MySQL
UNTUK Penggunaan MSSQL
MyDatabase
:SQL ini digunakan untuk menyalin tabel, di sini konten oldCustomersTable akan disalin
newCustomersTable
.Pastikan
newCustomersTable
tidak ada dalam database.sumber