Hướng dẫn can we duplicate a table in mysql? - chúng ta có thể sao chép một bảng trong mysql không?

Bạn có thể sao chép hoặc "bản sao" nội dung của bảng bằng cách thực thi câu lệnh

INSERT INTO new_table SELECT * FROM original_table;
3:

CREATE TABLE new_table AS SELECT * FROM original_table;

Hãy cẩn thận khi sử dụng điều này để sao chép các bàn lớn. Điều này có thể mất rất nhiều thời gian và tài nguyên máy chủ.

Cũng lưu ý rằng

INSERT INTO new_table SELECT * FROM original_table;
4 chỉ kế thừa các định nghĩa cột cơ bản, cài đặt null và giá trị mặc định của
INSERT INTO new_table SELECT * FROM original_table;
5. Nó không kế thừa các chỉ mục và định nghĩa tự động_increment.

Để kế thừa tất cả các định nghĩa bảng, hãy sử dụng cú pháp

INSERT INTO new_table SELECT * FROM original_table;
6:

CREATE TABLE new_table LIKE original_table;

Điều này làm cho cấu trúc của

INSERT INTO new_table SELECT * FROM original_table;
4 giống hệt như
INSERT INTO new_table SELECT * FROM original_table;
5, nhưng không sao chép dữ liệu. Để sao chép dữ liệu, bạn sẽ cần
INSERT INTO new_table SELECT * FROM original_table;
9:

INSERT INTO new_table SELECT * FROM original_table;

Một lần nữa, hãy cẩn thận khi làm điều này với các bàn lớn.

Mở rộng câu trả lời này, người ta có thể sử dụng một quy trình được lưu trữ:

CALL duplicate_table('tableName');

Sẽ dẫn đến một bảng trùng lặp gọi là

CALL duplicate_table('tableName');
0 nếu được gọi khi

SELECT NOW();

results:

2018-10-22 23:59:59

Thực hiện

DELIMITER $$
CREATE PROCEDURE duplicate_table(IN tableName VARCHAR(255))
  BEGIN
    DECLARE schemaName VARCHAR(255) DEFAULT SCHEMA();
    DECLARE today VARCHAR(14) DEFAULT REPLACE(REPLACE(REPLACE(NOW(), '-', ''), ' ', ''), ':', ''); -- update @ year 10000
    DECLARE backupTableName VARCHAR(255) DEFAULT CONCAT(tableName, '_', today);

    IF fn_table_exists(schemaName, tableName)
      THEN
        CALL statement(CONCAT('CREATE TABLE IF NOT EXISTS ', backupTableName,' LIKE ', tableName));
        CALL statement(CONCAT('INSERT INTO ', backupTableName,' SELECT * FROM ', tableName));
        CALL statement(CONCAT('CHECKSUM TABLE ', backupTableName,', ', tableName));
      ELSE
        SELECT CONCAT('ERROR: Table "', tableName, '" does not exist in the schema "', schemaName, '".') AS ErrorMessage;
      END IF;
  END $$
DELIMITER ;

DELIMITER $$
CREATE FUNCTION fn_table_exists(schemaName VARCHAR(255), tableName VARCHAR(255))
  RETURNS TINYINT(1)
  BEGIN
    DECLARE totalTablesCount INT DEFAULT (
      SELECT COUNT(*)
      FROM information_schema.TABLES
      WHERE (TABLE_SCHEMA COLLATE utf8_general_ci = schemaName COLLATE utf8_general_ci)
        AND (TABLE_NAME COLLATE utf8_general_ci = tableName COLLATE utf8_general_ci)
    );
    RETURN IF(
      totalTablesCount > 0,
      TRUE,
      FALSE
    );
  END $$
DELIMITER ;

DELIMITER $$
CREATE PROCEDURE statement(IN dynamic_statement TEXT)
  BEGIN
      SET @dynamic_statement := dynamic_statement;
      PREPARE prepared_statement FROM @dynamic_statement;
      EXECUTE prepared_statement;
      DEALLOCATE PREPARE prepared_statement;
  END $$
DELIMITER ;

Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu 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 & nbsp; sử dụng bảng tạo và chọn các câu lệnh.: in this tutorial, you will learn how to copy table within the same database or from one database to another using CREATE TABLE and SELECT statements.

Bảng sao chép mysql cho & nbsp; một bảng mới & nbsp;

Sao chép dữ liệu từ bảng hiện có sang một 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ừ bảng sang bảng mới, bạn sử dụng bảng tạo và chọn các câu lệnh như sau:

CREATE TABLE new_table SELECT col, col2, col3 FROM existing_table;

Code language: SQL (Structured Query Language) (sql)

Đầu tiên, MySQL tạo một bảng mới với tên được chỉ định & nbsp; 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

CALL duplicate_table('tableName');
1. Sau đó, MySQL điền dữ liệu & nbsp; dữ liệu đến & nbsp; từ câu lệnh
CALL duplicate_table('tableName');
1 đến bảng mới.

Để sao chép dữ liệu một phần từ bảng hiện có sang bảng mới, bạn sẽ sử dụng mệnh đề WHERE trong câu lệnh CHỌN như sau:

CREATE TABLE new_table LIKE original_table;
0

Điều rất quan trọng là kiểm tra xem bảng bạn có muốn tạo không tồn tại trước khi tạo nó. Để làm như vậy, bạn sử dụng mệnh đề

CALL duplicate_table('tableName');
3 trong câu lệnh
CALL duplicate_table('tableName');
4. Lệnh hoàn chỉnh & nbsp; của việc sao chép dữ liệu từ một bảng hiện có sang bảng mới như sau:

CREATE TABLE new_table LIKE original_table;
0

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, các ràng buộc khóa nước ngoài, & nbsp; kích hoạt, v.v., được 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:

CREATE TABLE new_table LIKE original_table;
2

Chúng ta cần thực thi & nbsp; hai câu lệnh. Tuyên bố đầu tiên & nbsp; tạo ra một bảng mới

INSERT INTO new_table SELECT * FROM original_table;
4 bằng cách nhân đôi
CALL duplicate_table('tableName');
6. Câu lệnh thứ hai & nbsp; chèn dữ liệu từ bảng hiện tại vào
INSERT INTO new_table SELECT * FROM original_table;
4.

Ví dụ bảng sao chép mysql

Câu lệnh sau & NBSP; sao chép dữ liệu từ bảng

CALL duplicate_table('tableName');
8 sang bảng mới có tên
CALL duplicate_table('tableName');
9 trong cơ sở dữ liệu mẫu
SELECT NOW();
0.

CREATE TABLE new_table LIKE original_table;
3

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

SELECT NOW();
1 như sau:

CREATE TABLE new_table LIKE original_table;
4in Các trường hợp chúng tôi muốn & nbsp; Sao chép các văn phòng & nbsp; chỉ tại Hoa Kỳ, chúng tôi & nbsp; có thể thêm mệnh đề
SELECT NOW();
2 vào câu lệnh
CALL duplicate_table('tableName');
1 như sau:
Hướng dẫn can we duplicate a table in mysql? - chúng ta có thể sao chép một bảng trong mysql không?

In cases we want to copy the offices in the US only, we can add the

SELECT NOW();
2 clause to the
CALL duplicate_table('tableName');
1 statement as follows:

CREATE TABLE new_table LIKE original_table;
5

Câu lệnh sau đây nhận được tất cả dữ liệu từ bảng

SELECT NOW();
4.

CREATE TABLE new_table LIKE original_table;
6Suppose, chúng tôi muốn sao chép không chỉ dữ liệu mà cả tất cả các đối tượng cơ sở dữ liệu được liên kết với bảng
CALL duplicate_table('tableName');
8, chúng tôi sử dụng các câu lệnh sau:
Hướng dẫn can we duplicate a table in mysql? - chúng ta có thể sao chép một bảng trong mysql không?

Suppose, we want to copy not only the data but also all database objects associated with the

CALL duplicate_table('tableName');
8 table, we use the following statements:

CREATE TABLE new_table LIKE original_table;
7

Bảng sao chép mysql vào cơ sở dữ liệu khác

Đôi khi, bạn muốn sao chép một bảng vào 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 sau:

CREATE TABLE new_table LIKE original_table;
8

Câu lệnh đầu tiên tạo ra 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 tại (hiện tại_table) từ cơ sở dữ liệu nguồn (Source_db).

Các 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 vào bảng mới trong cơ sở dữ liệu đích.

Hãy cùng xem ví dụ sau đây.

Đầu tiên, chúng tôi tạo cơ sở dữ liệu có tên TestDB bằng cách sử dụng câu lệnh sau:

CREATE TABLE new_table LIKE original_table;
9

Thứ hai, chúng tôi tạo bảng & nbsp; ________ 38 trong

SELECT NOW();
7 bằng cách sao chép cấu trúc của nó từ bảng
CALL duplicate_table('tableName');
8 trong cơ sở dữ liệu & nbsp; ____ ____ 40.

INSERT INTO new_table SELECT * FROM original_table;
0

Thứ ba, chúng tôi sao chép dữ liệu từ bảng classimodels.offices vào bảng TestDB.offices.

INSERT INTO new_table SELECT * FROM original_table;
1

Hãy để xác minh dữ liệu từ bảng

2018-10-22 23:59:59
0.

INSERT INTO new_table SELECT * FROM original_table;
2in Hướng dẫn này, chúng tôi đã chỉ cho bạn nhiều 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.
Hướng dẫn can we duplicate a table in mysql? - chúng ta có thể sao chép một bảng trong mysql không?

In this tutorial, we have shown you various techniques to copy table within a database and from one database to another.

Hướng dẫn này có hữu ích không?

Làm cách nào để sao chép cơ sở dữ liệu MySQL?

Đầu tiên, hãy sử dụng câu lệnh CREATE DATABASE để tạo cơ sở dữ liệu mới ..
Thứ hai, lưu trữ dữ liệu vào một tệp SQL. Chúng ta có thể đưa ra bất kỳ tên nào cho tệp này, nhưng nó phải kết thúc bằng a. ....
Thứ ba, xuất tất cả các đối tượng cơ sở dữ liệu cùng với dữ liệu của nó để sao chép bằng công cụ MySQLDump và sau đó nhập tệp này vào cơ sở dữ liệu mới ..

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

Làm thế nào để nhân đôi một bảng trong MySQL..
Tạo bảng new_table như chọn * từ gốc_table ;.
Tạo bảng new_table như gốc_table ;.
Chèn vào new_table Chọn * từ gốc_table ;.

Làm cách nào để nhân đôi một bảng trong một bảng khác?

Nhấp chuột phải vào bảng bạn muốn sao chép, chỉ vào bảng tập lệnh là, sau đó trỏ để tạo, sau đó chọn cửa sổ Trình soạn thảo truy vấn mới.Thay đổi tên của bảng.Loại bỏ bất kỳ cột không cần thiết trong bảng mới.Chọn Thực thi để tạo bảng mới.

Làm thế nào để bạn sao chép một cái bàn?

Example..
Bước 1 - Nhận cấu trúc hoàn chỉnh về bảng ..
Bước 2 - Đổi tên bảng này và tạo một bảng khác ..
Bước 3 - Sau khi thực hiện Bước 2, bạn sẽ sao chép một bảng trong cơ sở dữ liệu của mình.Nếu bạn muốn sao chép dữ liệu từ một bảng cũ, thì bạn có thể làm điều đó bằng cách sử dụng phần chèn vào ... Chọn câu lệnh ..