2011-11-22 11 views
7

Làm thế nào để sao chép một bảng có các phím & các tính năng cấu trúc khác được giữ lại? bao gồm khóa chính, khóa ngoài và chỉ mục.Làm thế nào để sao chép một bảng với các phím và các tính năng cấu trúc khác được giữ lại trong MySQL?

Điều này có thể thực hiện với một truy vấn MySQL đơn lẻ không?

Tôi đang sử dụng "tạo bảng mới như đã chọn ..." nhưng phương pháp này làm cho tất cả các phím & chỉ mục bị mất.

+1

Bạn có thể bật chỉ mục sau khi tạo bảng bằng cách sử dụng "ALTER TABLE ADD INDEX ...". Bằng cách này là tốt, bởi vì chèn vào bảng mới sẽ nhanh hơn mà không có chỉ mục. – Oroboros102

+0

có thể trùng lặp của [Làm thế nào tôi có thể ngăn chặn SQL injection trong PHP?] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) – mimarcel

Trả lời

23

sao chép một bảng từ bảng khác (với chỉ mục và cấu trúc) không thể được thực hiện với một truy vấn bạn sẽ cần 2 truy vấn.

1) Để tạo bảng trùng lặp.

CREATE TABLE Table2 LIKE Table1;

Điều này sẽ tạo bản sao chính xác của bảng.

2) Điền vào bảng trùng lặp với các giá trị từ bảng gốc.

INSERT INTO Table2 SELECT * from Table1;

sẽ điền Table2 với tất cả các hồ sơ fom Table1

5

bạn có thể làm điều đó trong truy vấn

CREATE TABLE a LIKE b 

này sau khi bạn có thể chèn

INSERT INTO a SELECT * FROM b 

đọc thêm thông tin tại đây article

+0

tks, phương pháp tuyệt vời:) – jondinham

0

truy vấn sau tạo và dữ liệu bản sao.

CREATE TABLE table2 SELECT * FROM table1