2010-09-03 42 views
10

Tôi có một bảng khá lớn và phức tạp trong cơ sở dữ liệu MySQL sẽ là một nỗi đau khi phải tạo một truy vấn để tạo lại thủ công nếu có gì sai.Tạo truy vấn MySQL để tạo một bảng từ một bảng hiện có

Có cách nào khác để tôi có thể nhận MySQL hoặc một số công cụ/tập lệnh khác mà tôi có thể sử dụng để truy vấn được tạo tự động có thể tạo lại cấu trúc của bảng không?

Lý tưởng nhất là nếu bạn đề nghị một công cụ/script nó sẽ cho Linux

Trả lời

15
SHOW CREATE TABLE `thetable`; 

Ngoài ra bất kỳ phương pháp sao lưu như mysqldump nên cung cấp cho bạn một tùy chọn để lưu cấu trúc cũng như dữ liệu.

+1

wow như đơn giản như vậy, hoặc kỹ năng google của tôi đang thiếu hoặc đôi mắt của tôi đã không làm việc – Tristan

+5

không rên rỉ về kỹ năng google của bạn trước khi thậm chí suy nghĩ về khả năng READING THE MANUAL – hop

0

bạn có thể xuất cấu trúc của bảng từ phpmyadmin vào một tập tin sql ...

0
SHOW CREATE TABLE `table_name`; 
0

Tôi chắc chắn đồng ý với folks khác:
với mysqldump bạn sẽ có được một bãi chứa của bảng của bạn (tùy chọn --tables), chúng ta hãy nói dumpMyTable.sql
sau đó nếu bạn muốn tải bãi này trên một mới schema:

mysql -uuser_name -ppassword MyNewSchema < dumpMyTable.sql 

nếu bạn muốn tải nó trong lược đồ tương tự nhưng trong một bảng mới, bạn sẽ phải chỉnh sửa file dumpMyTable.sql và thay đổi tên của bảng bằng tay. Nếu tệp kết xuất là rất lớn, tôi khuyên bạn nên sử dụng lệnh "sed"

0

Bạn có thể sử dụng SqlYog cho mục đích này. Giải pháp chỉ cách công cụ này 2 lần nhấp chuột. Bạn có thể sử dụng menu DataBase cho mục đích này. Bạn cũng có thể sao chép chỉ lược đồ hoặc toàn bộ dữ liệu và cả hai đến các máy chủ khác nhau.

7

từ http://dev.mysql.com/doc/refman/5.0/en/create-table.html

để tạo ra một bảng trống dựa trên định nghĩa của bảng khác, bao gồm bất kỳ thuộc tính cột và chỉ số xác định trong bảng ban đầu:

CREATE TABLE new_tbl LIKE orig_tbl; 
+0

Đây là chính xác những gì tôi đang tìm kiếm, cảm ơn! – richddr

0

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

4

thực hiện các truy vấn này :

Nếu bạn muốn sao chép cấu trúc bảng với khóa chính, khóa ngoại và làm hạn chế với các dữ liệu ...

CREATE TABLE newtableName LIKE oldTableName; 
INSERT newtableName SELECT * FROM oldTableName; 
Các vấn đề liên quan