Làm thế nào tôi có thể sao chép một bảng trong mysql?

Có thể xảy ra tình huống khi bạn cần một bản sao chính xác của bảng và TẠO BẢNG. CHỌN không phù hợp với mục đích của bạn vì bản sao phải bao gồm cùng các chỉ mục, giá trị mặc định, v.v.

Bạn có thể xử lý tình huống này bằng cách thực hiện theo các bước dưới đây -

  • Sử dụng SHOW CREATE TABLE để nhận câu lệnh CREATE TABLE chỉ định cấu trúc, chỉ mục và tất cả của bảng nguồn

  • Sửa đổi câu lệnh để thay đổi tên bảng thành tên của bảng nhân bản và thực hiện câu lệnh. Bằng cách này, bạn sẽ có bảng nhân bản chính xác

  • Theo tùy chọn, nếu bạn cũng cần sao chép nội dung bảng, hãy đưa ra lệnh INSERT INTO. Câu lệnh SELECT cũng vậy

Thí dụ

Hãy thử ví dụ sau để tạo bảng nhân bản cho tutorials_tbl

Bước 1 - Nhận cấu trúc hoàn chỉnh về bảng

mysql> SHOW CREATE TABLE tutorials_tbl \G;
*************************** 1. row ***************************
      Table: tutorials_tbl
Create Table: CREATE TABLE `tutorials_tbl` (
   `tutorial_id` int(11) NOT NULL auto_increment,
   `tutorial_title` varchar(100) NOT NULL default '',
   `tutorial_author` varchar(40) NOT NULL default '',
   `submission_date` date default NULL,
   PRIMARY KEY  (`tutorial_id`),
   UNIQUE KEY `AUTHOR_INDEX` (`tutorial_author`)
) TYPE = MyISAM
1 row in set (0.00 sec)

ERROR:
No query specified

Bước 2 - Đổi tên bảng này và tạo một bảng khác

mysql> CREATE TABLE clone_tbl (
   -> tutorial_id int(11) NOT NULL auto_increment,
   -> tutorial_title varchar(100) NOT NULL default '',
   -> tutorial_author varchar(40) NOT NULL default '',
   -> submission_date date default NULL,
   -> PRIMARY KEY  (tutorial_id),
   -> UNIQUE KEY AUTHOR_INDEX (tutorial_author)
-> ) TYPE = MyISAM;
Query OK, 0 rows affected (1.80 sec)

Bước 3 - Sau khi thực hiện bước 2, bạn sẽ tạo một bảng nhân bản trong cơ sở dữ liệu của mình. Nếu bạn muốn sao chép dữ liệu từ bảng cũ thì bạn có thể thực hiện bằng cách sử dụng INSERT INTO. câu lệnh CHỌN

Hướng dẫn này sẽ giới thiệu cách sao chép một bảng từ cơ sở dữ liệu sang một bảng khác bằng cách sử dụng các mệnh đề CREATE và SELECT của MySQL

Trường hợp sử dụng

Trường hợp đầu tiên chúng ta cần sao chép bảng là sao chép dữ liệu cụ thể từ bảng hiện có sang bảng mới. Ví dụ: trong cơ sở dữ liệu mẫu Sakila, chúng tôi có thể sao chép thông tin cụ thể từ bảng phim sang một bảng mới có tên là film_revised

Hãy xem xét truy vấn bên dưới để thực hiện thao tác như vậy

TẠO CƠ SỞ DỮ LIỆU copy_tb;
sử dụng copy_tb;
TẠO bảng film_revised CHỌN tiêu đề, năm phát hành, độ dài, xếp hạng TỪ sakila. phim;

Khi truy vấn trên thực thi, chúng ta có thể xem dữ liệu được lưu trữ trong bảng bằng cách sử dụng câu lệnh chọn của MySQL như được hiển thị trong đầu ra bên dưới

mysql> CHỌN * TỪ film_revised GIỚI HẠN 10;
+------------------+------- . Tiêu đề. năm phát hành. chiều dài. Xếp hạng.
| title            | release_year | length | rating |
+------------------+--------------+------ . HỌC VIỆN KHỦNG LONG. 2006. 86. PG.
| ACADEMY DINOSAUR |         2006 |     86 | PG     |
. ACE VÀNG. 2006. 48. g.
. LỖ CHUYỂN ỨNG. 2006. 50. NC-17.
. ĐỊNH KIỆN TÌNH CẢM. 2006. 117. g.
. TRỨNG PHI. 2006. 130. g.
. ĐẠI LÝ TRUMAN. 2006. 169. PG.
. MÁY BAY SIERRA. 2006. 62. PG-13.
. KHU VỰC SÂN BAY. 2006. 54. r.
. QUỶ ALABAMA. 2006. 114. PG-13.
. LỊCH ALADDIN. 2006. 63. NC-17.
+------------------+--------------+------ . 00 giây)
10 rows in set (0.00 sec)

Như bạn có thể thấy, chúng ta có thể tạo các bảng mới với thông tin được chọn từ các bảng hiện có mà không làm thay đổi dữ liệu trong cơ sở dữ liệu gốc

GHI CHÚ. Sao chép một bảng bằng cách sử dụng các câu lệnh CREATE TABLE và SELECT chỉ sao chép bảng và dữ liệu của nó. Nó không sao chép các đối tượng như chỉ mục, trình kích hoạt, ràng buộc khóa chính, v.v. , được kết nối với bảng gốc

Sao chép Bảng + Đối tượng

Để sao chép bảng + dữ liệu và tất cả các đối tượng liên quan, chúng ta sử dụng câu lệnh LIKE theo sau là câu lệnh INSERT như minh họa trong truy vấn bên dưới

TẠO BẢNG film_copy THÍCH sakila. phim;

INSERT film_copy SELECT * FROM sakila. phim;

Truy vấn trên sẽ sao chép mọi thứ từ bảng gốc sang bảng mới, bao gồm chỉ mục, khóa chính, ràng buộc và các đối tượng khác được kết nối với bảng gốc

GHI CHÚ. Hãy cẩn thận khi sử dụng các câu lệnh sao chép trên các bảng lớn vì chúng có thể sử dụng nhiều tài nguyên hơn và mất nhiều thời gian để hoàn thành

Sao chép bảng từ cơ sở dữ liệu riêng biệt

Nếu bạn cần sao chép một bảng từ các cơ sở dữ liệu khác nhau, bạn có thể tham chiếu cơ sở dữ liệu bằng cách sử dụng dấu chấm (. ) ký hiệu

Ví dụ: bắt đầu bằng cách tạo một cơ sở dữ liệu mới dưới dạng

TẠO CƠ SỞ DỮ LIỆU NẾU KHÔNG TỒN TẠI multi_db;

Tiếp theo, sử dụng cú pháp được hiển thị trước đó để sao chép bảng từ cơ sở dữ liệu cũ sang cơ sở dữ liệu mới. Xem truy vấn bên dưới

TẠO BẢNG multi_db. new_tb THÍCH sakila. phim;

CHÈN multi_db. new_tb SELECT * FROM sakila. phim;

Thao tác này sẽ sao chép bảng phim bảng từ cơ sở dữ liệu Sakila sang cơ sở dữ liệu mới và hiển thị đầu ra như hình bên dưới

Truy vấn OK, 1000 hàng bị ảnh hưởng (0. 03 giây)

Bản ghi. 1000 bản sao. 0 cảnh báo. 0

Bạn có thể sử dụng câu lệnh SELECT để xác minh dữ liệu đã được sao chép thành công

Sự kết luận

Hướng dẫn nhanh này đã giới thiệu cách sử dụng các câu lệnh CREATE TABLE và SELECT của MySQL để sao chép các cột cụ thể từ một bảng sang một bảng mới

Chúng tôi cũng đã xem xét cách sao chép tất cả dữ liệu, bao gồm các đối tượng được liên kết với bảng gốc, sang một bảng mới

Truy vấn MySQL để tạo bảng trùng lặp trong MySQL là gì?

Sao chép/Sao chép/Sao chép bảng MySQL .
TẠO BẢNG new_table_name
CHỌN cột1, cột2, cột3
TỪ tên_bảng hiện có;

Làm cách nào để sao chép một bảng trong SQL Server?

Mở cơ sở dữ liệu trong SQL Management Studio. Nhấp chuột phải vào bảng mà bạn muốn sao chép. Chọn Bảng tập lệnh dưới dạng -> Tạo thành -> Cửa sổ Trình soạn thảo truy vấn mới. Thao tác này sẽ tạo tập lệnh để tạo lại bảng trong cửa sổ truy vấn mới