Bảng sao chép MySQL sang bảng khác
Bảng sao chép hoặc bản sao MySQL là một tính năng cho phép chúng tôi tạo một bảng trùng lặp của một bảng hiện có, bao gồm cấu trúc bảng, chỉ mục, ràng buộc, giá trị mặc định, v.v. Sao chép dữ liệu của một bảng hiện có vào một bảng mới rất hữu ích trong trường hợp như sao lưu dữ liệu trong bảng bị lỗi. Nó cũng thuận lợi khi chúng ta cần kiểm tra hoặc thực hiện một cái gì đó mà không ảnh hưởng đến bảng gốc, ví dụ: sao chép dữ liệu sản xuất để thử nghiệm Show
Chúng ta có thể sao chép một bảng hiện có sang một bảng mới bằng cách sử dụng câu lệnh CREATE TABLE và SELECT, như hình bên dưới Từ phần trên, đầu tiên, nó tạo một bảng mới cho biết trong câu lệnh CREATE TABLE. Thứ hai, tập kết quả của câu lệnh SELECT xác định cấu trúc của một bảng mới. Cuối cùng, MySQL điền dữ liệu nhận được từ câu lệnh SELECT vào bảng mới được tạo Nếu chỉ cần sao chép một phần dữ liệu từ bảng hiện có sang bảng mới, hãy sử dụng mệnh đề WHERE với câu lệnh SELECT như hình bên dưới Chúng tôi phải đảm bảo rằng bảng chúng tôi sẽ tạo không được tồn tại trong cơ sở dữ liệu của chúng tôi. Mệnh đề IF NOT EXISTS trong MySQL cho phép chúng ta kiểm tra xem một bảng có tồn tại trong cơ sở dữ liệu hay không trước khi tạo một bảng mới. Vì vậy, tuyên bố dưới đây giải thích nó rõ ràng hơn Cần lưu ý rằng câu lệnh này chỉ sao chép bảng và dữ liệu của nó. Nó không sao chép tất cả các đối tượng phụ thuộc của bảng, chẳng hạn như chỉ mục, trình kích hoạt, ràng buộc khóa chính, ràng buộc khóa ngoại, v.v. Vì vậy, lệnh sao chép dữ liệu cùng với các đối tượng phụ thuộc của nó từ bảng hiện có sang bảng mới có thể được viết dưới dạng các câu lệnh sau Ở phần trên, chúng ta có thể thấy rằng chúng ta cần thực hiện hai câu lệnh để sao chép dữ liệu cùng với cấu trúc và các ràng buộc. Lệnh đầu tiên tạo một bảng mới tên_bảng_mới sao chép tên_bảng_hiện có và lệnh thứ hai thêm dữ liệu từ bảng hiện có vào tên_bảng mới Ví dụ về bảng sao chép/bản sao MySQLHãy để chúng tôi chứng minh cách chúng tôi có thể tạo một bảng trùng lặp với sự trợ giúp của một ví dụ. Đầu tiên, chúng ta sẽ tạo một bảng có tên " original_table " bằng cách sử dụng câu lệnh bên dưới Tiếp theo, cần phải thêm các giá trị vào bảng này. Thực hiện câu lệnh dưới đây Tiếp theo, thực hiện câu lệnh SELECT để hiển thị các bản ghi Ta sẽ được kết quả như hình bên dưới Bây giờ, hãy thực hiện câu lệnh sau để sao chép dữ liệu từ bảng " original_table " hiện có sang một bảng mới có tên "bản_bảng_trùng lặp" trong cơ sở dữ liệu đã chọn Sau khi thực thi thành công, chúng ta có thể xác minh dữ liệu bảng bằng câu lệnh SELECT. Xem đầu ra bên dưới Đôi khi chỉ cần sao chép một phần dữ liệu từ bảng hiện có sang bảng mới. Trong trường hợp đó, chúng ta có thể sử dụng mệnh đề WHERE với câu lệnh SELECT như sau Câu lệnh này tạo một bảng trùng lặp chỉ chứa dữ liệu cho năm 2016. Chúng ta có thể xác minh bảng bằng cách sử dụng câu lệnh CHỌN, như hình bên dưới Giả sử có nhu cầu sao chép một bảng hiện có cùng với tất cả các đối tượng phụ thuộc được liên kết với bảng, hãy thực hiện hai câu lệnh được đưa ra dưới đây Hãy cho chúng tôi xem làm thế nào chúng ta có thể sao chép một bảng sang một cơ sở dữ liệu khác thông qua một ví dụ Giả sử có tình huống sao chép một bảng từ cơ sở dữ liệu khác. Trong trường hợp đó, chúng ta cần thực hiện các câu lệnh dưới đây Ở trên, lệnh đầu tiên tạo một bảng mới trong cơ sở dữ liệu (đích) đã chọn bằng cách sao chép bảng hiện có từ cơ sở dữ liệu nguồn. Lệnh thứ hai sao chép dữ liệu từ bảng hiện có sang bảng mới trong cơ sở dữ liệu đã chọn Cuộc biểu tình sau đây giải thích nó rõ ràng hơn Giả sử chúng ta có hai cơ sở dữ liệu tên là "mysqltestdb" và "mystudentdb" trên MySQL Server. Cơ sở dữ liệu mytestdb chứa một bảng có tên là " original_table " có dữ liệu sau Bây giờ, chúng ta sẽ sao chép bảng này vào một cơ sở dữ liệu khác có tên mystudentdb bằng cách sử dụng câu lệnh sau Sau khi thực hiện thành công, chúng ta có thể xác minh bảng trong cơ sở dữ liệu mystudentdb bằng lệnh bên dưới Trong kết quả bên dưới, chúng ta có thể thấy rằng bảng đã được sao chép thành công vào cơ sở dữ liệu này sang cơ sở dữ liệu khác Tùy thuộc vào mức độ giống hệt của bảng sao chép với bảng ban đầu mà bạn muốn, có ba cách dễ dàng để bạn có thể sao chép bảng
Hướng dẫn này sẽ chỉ cho bạn cách sử dụng tất cả các phương pháp trên để sao chép bảng MySQL Sao chép bảng bằng truy vấn CREATE TABLE ASNếu bạn muốn tạo một bảng nhân bản nông chỉ có dữ liệu và thuộc tính cột của bảng gốc, bạn có thể sử dụng truy vấn 4Ví dụ: giả sử bạn có một bảng tên là 5 và bạn cần tạo một bản sao của bảng có tên là bảng 6Đây là cách bạn làm điều đó
Lệnh trên sẽ lưu kết quả của câu lệnh 7 dưới dạng một bảng mới trong cơ sở dữ liệu MySQL của bạnHãy nhớ rằng phương pháp trên không sao chép các chỉ mục, trình kích hoạt hoặc ràng buộc của bảng gốc vì nó chỉ lưu kết quả của truy vấn dưới dạng một bảng mới Nếu bạn cũng muốn sao chép các chỉ mục của bảng, bạn cần sử dụng truy vấn 2Sao chép bảng bằng truy vấn CREATE TABLE LIKEĐể sao chép một bảng hiện có thành một bảng mới, bạn có thể sử dụng truy vấn 2 và chuyển tên của bảng gốc bên cạnh mệnh đề 00Ví dụ: giả sử bạn có một bảng tên là 5, sau đây là cách tạo một bản sao của bảng đó
Một bảng trống mới có tên là 02 sẽ được tạo trong cơ sở dữ liệu MySQL của bạn, bảng này sẽ là bản sao của bảng 5Hãy nhớ rằng sao chép bảng MySQL theo cách này sẽ sao chép cấu trúc và chỉ mục của bảng ban đầu, nhưng mọi trình kích hoạt và ràng buộc được đặt trên bảng ban đầu sẽ không được sao chép vào bảng mới Điều này là do các tên ràng buộc của bảng phải là duy nhất trong một cơ sở dữ liệu, vì vậy bạn cần thêm các ràng buộc theo cách thủ công bằng một tên khác Sau khi tạo bảng, bạn có thể chèn dữ liệu từ bảng gốc vào bảng sao chép bằng câu lệnh INSERT như sau 0Truy vấn SQL bên dưới sẽ sao chép tất cả dữ liệu từ bảng 5 sang bảng 02 8Bây giờ bạn đã học cách sao chép bảng bằng truy vấn 2. Hãy tìm hiểu cách bạn cũng có thể sao chép bảng bằng truy vấn 3Sao chép bảng bằng truy vấn SHOW CREATE TABLETruy vấn 3 được sử dụng để hiển thị truy vấn SQL để tạo một bảng cụ thểVí dụ: để hiển thị truy vấn 09 cho bảng 5, bạn có thể sử dụng truy vấn SQL sau 4Trong cơ sở dữ liệu của tôi, tập kết quả sau được hiển thị 5Toàn bộ truy vấn để tạo cấu trúc bảng sẽ được hiển thị dưới dạng tập kết quả của truy vấn 3Bây giờ bạn có thể sao chép câu lệnh 09 và thay đổi tên của bảng để tạo một bản sao của bảng gốcHãy đổi tên từ 5 thành 84 0Nếu câu lệnh 09 có mệnh đề 86, bạn cần đổi tên của mệnh đề 86 đó vì MySQL cần tên ràng buộc là duy nhấtBảng 5 ở trên có hai mệnh đề ràng buộc như sau 5Nếu không thay đổi tên ràng buộc, thì bạn sẽ gặp lỗi 89 7Để tránh lỗi, bạn cần đổi tên 40 và 41 thành tên khácVí dụ của chúng tôi, chúng tôi có thể sử dụng 42 và 43 cho các tên ràng buộcBây giờ bạn có thể tạo một bản sao của bảng khách hàng. Nếu bạn cũng muốn sao chép dữ liệu của bảng, thì bạn có thể sử dụng câu lệnh 44 như trong phương pháp đầu tiên 3Bạn cũng có thể bao gồm KHOẢN 45 cho truy vấn 7 để chỉ sao chép một phần dữ liệu đáp ứng các điều kiện nhất địnhSao chép bảng vào một cơ sở dữ liệu khácKhi bạn cần sao chép một bảng vào một cơ sở dữ liệu khác, bạn có thể thêm tên cơ sở dữ liệu nguồn và đích vào truy vấn 09Dưới đây là một số truy vấn ví dụ để sao chép một bảng hiện có vào một cơ sở dữ liệu khác 0Và đó là cách bạn sao chép một bảng cơ sở dữ liệu sang cơ sở dữ liệu khác Sự kết luậnVì không có cú pháp MySQL 48, bạn cần tận dụng các tính năng hiện có của MySQL để sao chép một bảng hiện có vào một bảng mớiBa phương pháp được đề cập ở trên là đủ để giúp bạn sao chép một bảng hiện có thành một bảng mới Nếu bạn chỉ cần tạo một bản sao nông với các thuộc tính và dữ liệu cột giống nhau, bạn có thể sử dụng truy vấn 4Nếu bạn cũng cần sao chép các trình kích hoạt, chỉ mục và ràng buộc có liên quan, thì bạn có thể sử dụng truy vấn 2 hoặc 3
Chúng ta có thể sao chép dữ liệu từ bảng này sang bảng khác không?Câu lệnh INSERT INTO SELECT sao chép dữ liệu từ một bảng và chèn nó vào một bảng khác . Câu lệnh INSERT INTO SELECT yêu cầu kiểu dữ liệu trong bảng nguồn và bảng đích khớp với nhau. Ghi chú. Các bản ghi hiện có trong bảng mục tiêu không bị ảnh hưởng.
Làm cách nào để tạo một bảng mới từ một bảng hiện có trong MySQL?Bạn có thể tạo một bảng từ một bảng khác bằng cách thêm câu lệnh CHỌN vào cuối câu lệnh CREATE TABLE. TẠO BẢNG new_tbl [AS] CHỌN * TỪ orig_tbl; MySQL tạo các cột mới cho tất cả các thành phần trong CHỌN. |