Berhati - hatilah menggunakan ini di bawah beban dan pada konkurensi tinggi. Saya baru saja dibakar menggunakan ini pada skala, di mana kami membuat sekitar 50 tabel berbeda berdasarkan tabel sumber yang sama, pada saat yang sama dengan memasukkan ke dalam tabel sumber dari proses lain. Pada dasarnya menyebabkan krisis kunci besar dan harus me-restart MySQL.
Mark B
6
Uhm, OP bingung? Ini adalah jawaban yang salah untuk pertanyaan, jika kita memperhatikan judul dan penekanan pada pertanyaan "... tanpa menyalin data ..." Jawaban RCNell adalah yang berhak tertinggi. Tidak yakin mengapa yang ini diterima. Katakan saja.
Ini adalah jawaban yang lebih baik karena salinan ini juga mengindeks!
Chaitan
2
Ini jauh lebih baik, tetapi masih tidak menyalin kunci asing.
Josef Sábl
@RCNeil, Apakah CREATE TABLE new_tbl LIKE orig_tbl;salinan juga hak istimewa? Atau haruskah itu disalin secara manual?
Pacerier
2
Mungkin karena jawaban ini datang 4 tahun kemudian dari yang ditandai sebagai benar
pythonian29033
1
@ Pierre-OlivierVares Teks dokumentasi tidak langsung relevan dengan jawaban aktual. Teks jawaban ringkas dalam menunjukkan bagaimana melakukan apa yang ditanyakan, sementara tautan dokumentasi hanya menyediakan konteks tambahan. Karena itu, membengkaknya jawaban dengan teks dari dokumentasi tidak membantu.
Abion47
27
SHOW CREATETABLE bar;
Anda akan mendapatkan pernyataan buat untuk tabel itu, edit nama tabel, atau apa pun yang Anda suka, dan kemudian jalankan.
Ini akan memungkinkan Anda untuk menyalin indeks dan juga secara manual mengubah pembuatan tabel.
Anda juga dapat menjalankan kueri dalam suatu program.
Bagaimana Anda bisa mengubahnya show create table barmenjadi pernyataan yang dapat dieksekusi secara dinamis?
Pacerier
hasil yang diberikan oleh show create table barsudah dapat dieksekusi, jika skrip memiliki izin untuk membuat tabel, Anda bisa menguraikannya dan kemudian mengeksekusi pernyataan tabel alter juga.
Timo Huovinen
create table...tidak akan menyalin indeks. jawaban ini adalah pilihan yang lebih baik
foo
danbar
merupakan variabel tak beraturan yang sewenang-wenang , seperti halnya Alice dan Bob .Jawaban:
Mencoba:
Atau:
sumber
select * into foo from bar where 1=0
create table NewTable like OldTable
ada pilihan untuk Anda. Tautan disalin dari jawaban yang dihapus.Mencoba
jadi kunci dan indeks juga disalin.
Dokumentasi
sumber
CREATE TABLE new_tbl LIKE orig_tbl;
salinan juga hak istimewa? Atau haruskah itu disalin secara manual?Anda akan mendapatkan pernyataan buat untuk tabel itu, edit nama tabel, atau apa pun yang Anda suka, dan kemudian jalankan.
Ini akan memungkinkan Anda untuk menyalin indeks dan juga secara manual mengubah pembuatan tabel.
Anda juga dapat menjalankan kueri dalam suatu program.
sumber
show create table bar
menjadi pernyataan yang dapat dieksekusi secara dinamis?show create table bar
sudah dapat dieksekusi, jika skrip memiliki izin untuk membuat tabel, Anda bisa menguraikannya dan kemudian mengeksekusi pernyataan tabel alter juga.create table...
tidak akan menyalin indeks. jawaban ini adalah pilihan yang lebih baikHanya ingin mengkloning struktur tabel:
Juga ingin menyalin data:
sumber