2010-09-03 21 views
10

Bir şey yanlış gittiğinde yeniden oluşturmak için bir sorgu oluşturmak zorunda kaldığım bir ağrım olacak bir MySQL veritabanında oldukça büyük ve karmaşık bir tablo var.Varolan bir tablodan tablo oluşturmak için MySQL sorgusu oluşturma

MySQL veya başka bir araç/komut dosyası alabildiğim bir yer var mı? Tablonun yapısını yeniden oluşturmak için otomatik olarak yapılmış bir Sorguyu almak için kullanabilir miyim? Eğer Linux

için olacak bir aracı/komut önerdi eğer İdeal

bir sql dosyasına phpmyadmin den tablonun yapı aktarabilir

cevap

15
SHOW CREATE TABLE `thetable`; 

http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html

Ayrıca mysqldump gibi herhangi bir yedek yöntem size yapısını yanı sıra verileri kaydetmek için bir seçenek vermelidir.

+1

... vay verilerle kısıtlar Bu kadar basit, ya benim google beceriler eksik veya gözlerim çalışma değildi – Tristan

+5

bile MANUAL – hop

0

...

4

Dışa aktarılacak Mysqldump aracını kullanabilirsiniz Bir mysql tablosunun yapısı ve verileri.

+3

mysqldump -u -p --no-veri --tables > table.ddl – rompetroll

0
SHOW CREATE TABLE `table_name`; 
0

Kesinlikle diğer millet ile anlaşmak: Eğer tablosunun bir dökümü (opsiyon --tables) olsun Mysqldump ile
, yeni bu dökümü yüklemek istiyorsanız o sırada dumpMyTable.sql
diyelim şema:

mysql -uuser_name -ppassword MyNewSchema < dumpMyTable.sql 

aynı şemada yüklemek için ancak yeni bir tabloda size dumpMyTable.sql dosyasını düzenlemek ve elle tablonun adını değiştirmek zorunda kalacak istiyorum

. Döküm dosyası çok büyükse, "sed" komutunun kullanılmasını öneririm

0

Bu amaçla SqlYog'u kullanabilirsiniz. Çözüm bu araçtan sadece 2 tık ötede. Bu amaç için DataBase menüsünü kullanabilirsiniz. Ayrıca, yalnızca şemayı veya tüm verileri ve her ikisini de farklı sunuculara kopyalayabilirsiniz.

CREATE TABLE new_tbl LIKE orig_tbl; 
7

herhangi bir sütun özellikleri ve orijinal tabloda tanımlandığı dizinler de dahil olmak üzere, başka bir tablo tanımına göre, boş bir tablo oluşturmak için :

Kopyalamak isterseniz Birincil anahtar, yabancı anahtar ve ile tablo yapısı olarak

CREATE TABLE newtableName LIKE oldTableName; 
INSERT newtableName SELECT * FROM oldTableName; 
+0

OKUMA olasılığı hakkında düşünmeden önce google becerilerinizi hakkında değil, bu tam olarak ne arıyordum, teşekkürler! – richddr

0

CREATE TABLE new_table AS SELECT * FROM old_table WHERE 1 =0

İlgili konular