Tóm lược. trong hướng dẫn này, bạn sẽ học cách sao chép bảng trong cùng một cơ sở dữ liệu hoặc từ cơ sở dữ liệu này sang cơ sở dữ liệu khác bằng cách sử dụng câu lệnh CREATE TABLE và SELECT
Bảng sao chép MySQL sang bảng mới
Sao chép dữ liệu từ bảng hiện có sang bảng mới rất hữu ích trong một số trường hợp như sao lưu dữ liệu và sao chép dữ liệu sản xuất để thử nghiệm
Để sao chép dữ liệu từ một bảng sang một bảng mới, bạn sử dụng câu lệnh CREATE TABLE và SELECT như sau
Code language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col, col2, col3 FROM existing_table;
Đầu tiên, MySQL tạo một bảng mới với tên được chỉ định trong câu lệnh CREATE TABLE. Cấu trúc của bảng mới được xác định bởi tập kết quả của câu lệnh
4. Sau đó, MySQL điền dữ liệu đến từ câu lệnhCode language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
4 vào bảng mớiCode language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
Để sao chép một phần dữ liệu từ bảng hiện có sang bảng mới, bạn sử dụng mệnh đề WHERE trong câu lệnh SELECT như sau
Code language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
Điều rất quan trọng là phải kiểm tra xem bảng bạn muốn tạo đã tồn tại chưa trước khi tạo nó. Để làm như vậy, bạn sử dụng mệnh đề
6 trong câu lệnhCode language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
7. Toàn bộ lệnh sao chép dữ liệu từ bảng hiện có sang bảng mới như sauCode language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
Code language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
Lưu ý rằng câu lệnh trên chỉ sao chép bảng và dữ liệu của nó. Nó không sao chép các đối tượng cơ sở dữ liệu khác như chỉ mục, ràng buộc khóa chính, ràng buộc khóa ngoại, trình kích hoạt, v.v. , liên kết với bảng
Để sao chép dữ liệu từ một bảng và tất cả các đối tượng phụ thuộc của bảng, bạn sử dụng các câu lệnh sau
Code language: SQL [Structured Query Language] [sql]
CREATE TABLE IF NOT EXISTS new_table LIKE existing_table; INSERT new_table SELECT * FROM existing_table;
Chúng ta cần thực hiện hai câu lệnh. Câu lệnh đầu tiên tạo bảng mới
8 bằng cách sao chép bảngCode language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
9. Câu lệnh thứ hai chèn dữ liệu từ bảng hiện có vàoCode language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
8Code language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
Ví dụ về bảng sao chép MySQL
Câu lệnh sau sao chép dữ liệu từ bảng
1 sang bảng mới có tênCode language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
2 trong cơ sở dữ liệu mẫuCode language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
3Code language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
4Code language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
Chúng tôi có thể xác minh bản sao bằng cách truy vấn dữ liệu từ bảng
4 như sauCode language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
6
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
Code language: SQL [Structured Query Language] [sql]
Trong trường hợp chúng ta chỉ muốn sao chép các văn phòng ở Mỹ, chúng ta có thể thêm mệnh đề
5 vào mệnh đềCode language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
4 như sauCode language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
9Code language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
Câu lệnh sau lấy tất cả dữ liệu từ bảng
7Code language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
1Code language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
Giả sử chúng ta muốn sao chép không chỉ dữ liệu mà còn tất cả các đối tượng cơ sở dữ liệu được liên kết với bảng
1, chúng ta sử dụng các câu lệnh sau.Code language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
3Code language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
Bảng sao chép MySQL sang cơ sở dữ liệu khác
Đôi khi, bạn muốn sao chép một bảng sang một cơ sở dữ liệu khác. Trong những trường hợp như vậy, bạn sử dụng các câu lệnh sau
4Code language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
Câu lệnh đầu tiên tạo một bảng mới new_table trong cơ sở dữ liệu đích [destination_db] bằng cách sao chép bảng hiện có [current_table] từ cơ sở dữ liệu nguồn [source_db]
Câu lệnh thứ hai sao chép dữ liệu từ bảng hiện có trong cơ sở dữ liệu nguồn sang bảng mới trong cơ sở dữ liệu đích
Hãy xem ví dụ sau
Đầu tiên, chúng tôi tạo một cơ sở dữ liệu có tên testdb bằng cách sử dụng câu lệnh sau
0Code language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
Thứ hai, chúng ta tạo bảng
1 trongCode language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
0 bằng cách sao chép cấu trúc của nó từ bảngCode language: SQL [Structured Query Language] [sql]
CREATE TABLE IF NOT EXISTS new_table LIKE existing_table; INSERT new_table SELECT * FROM existing_table;
1 trong cơ sở dữ liệuCode language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
3Code language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
1Code language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
Thứ ba, chúng tôi sao chép dữ liệu từ classimodels. bảng văn phòng để testdb. bàn văn phòng
2Code language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
Hãy xác minh dữ liệu từ bảng
3Code language: SQL [Structured Query Language] [sql]
CREATE TABLE IF NOT EXISTS new_table LIKE existing_table; INSERT new_table SELECT * FROM existing_table;
3Code language: SQL [Structured Query Language] [sql]
CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions;
Trong hướng dẫn này, chúng tôi đã chỉ cho bạn các kỹ thuật khác nhau để sao chép bảng trong cơ sở dữ liệu và từ cơ sở dữ liệu này sang cơ sở dữ liệu khác.