2011-08-08 16 views
17

thể trùng lặp:
how to take backup of a single table in the mysql database?Làm thế nào để có được truy vấn mà sẽ tái tạo bảng sql trong PHPMyAdmin

Tôi có bảng trên máy chủ MySQL và muốn để có được SQL sẽ tái tạo cai ban.

Làm cách nào để truy vấn tạo lại bảng SQL?

+2

Từ dòng lệnh: 'mysqldump -u yourlogin -p your_database your_tablename'. Nhập mật khẩu và sau đó câu lệnh tạo bảng sẽ được hiển thị. Nếu bạn muốn lấy nó từ giao diện phpmyadmin, hãy chạy truy vấn: 'show create table your_tablename' –

Trả lời

0

Nếu bạn có quyền truy cập vào phpMyAdmin, bạn có thể lấy mã này thông qua tab Xuất trên bảng mà bạn yêu cầu.

Chọn SQL sau đó đảm bảo bạn xuất "Cấu trúc" ("TẠO bảng") và "Dữ liệu" ("mã INSERT") với loại Xuất được đặt thành "CHERTN".

6

Nếu bạn đang sử dụng phpMyAdmin, hãy chọn một bảng, sau đó nhấp vào tab 'Xuất'. Một trong những kiểu đầu ra là SQL. Việc chọn này sẽ tạo ra một kịch bản lệnh SQL để tạo bảng và chèn tất cả dữ liệu hiện có trong bảng. Hãy chắc chắn rằng dưới sự lựa chọn bãi chứa dữ liệu để chọn 'Cấu trúc và dữ liệu'

50

MySQL hỗ trợ SHOW CREATE TABLE để trả lại SQL đã được sử dụng để tạo một bảng.

Từ tài liệu của họ:

mysql> SHOW CREATE TABLE t; 
CREATE TABLE t (
    id INT(11) default NULL auto_increment, 
    s char(60) default NULL, 
    PRIMARY KEY (id) 
) ENGINE=MyISAM 

này có thể hữu ích nếu bạn chỉ có một kết nối đến DB, so với CLI trên máy chủ. Nếu bạn có một CLI, sử dụng mysqldump như liamgriffiths khuyến cáo.

+0

Điều này không giải quyết được việc sao chép các hàng mà tôi nghĩ là một phần của kết quả mong đợi. –

+3

Đây là * thực sự * tốt - nên là câu trả lời hay nhất! – Haudegen

0

Tôi muốn đi với @liamgriffiths đề nghị của mysqldump, nhưng bạn cũng có thể thử create table <new-table-name> like <old-table-name> tiếp theo insert into <new-table-name> select * from <old-table-name>

2

mysqldump [OPTIONS] cơ sở dữ liệu [bảng]> sao lưu-file.sql

Nếu bạn don' t cung cấp cho bất kỳ bảng hoặc sử dụng cơ sở dữ liệu - hoặc cơ sở dữ liệu - tất cả, toàn bộ cơ sở dữ liệu (s) sẽ được bán phá giá.

Bạn có thể nhận danh sách các tùy chọn mà phiên bản mysqldump của bạn hỗ trợ bằng cách thực hiện mysqldump --help.

Lưu ý rằng nếu bạn chạy mysqldump mà không có --quick hoặc --opt, mysqldump sẽ tải toàn bộ kết quả được đặt vào bộ nhớ trước khi bán kết quả. Điều này có thể sẽ là một vấn đề nếu bạn đang bán phá giá một cơ sở dữ liệu lớn.