Hướng dẫn mysql copy table from one schema to another - bảng sao chép mysql từ một lược đồ này sang một lược đồ khác


Re: Làm cách nào để sao chép một bảng từ một lược đồ MySQL sang lược đồ MySQL khác trong MYSL?


Nếu nó ở trên cùng một máy chủ chỉ là một cơ sở dữ liệu khác, bạn có thể sử dụng

CREATE TABLE newdb.mynewtable LIKE olddb.myoldtable;

Sau đó, bạn có thể chèn dữ liệu vào bảng mới từ cái cũ bằng cách sử dụng

INSERT newdb.mynewtable
SELECT *
FROM olddb.myoldtable;

Nếu chúng có trên các máy chủ khác nhau, bạn có thể sử dụng tiện ích dòng lệnh "MySQLDump" để đổ cấu trúc và/hoặc dữ liệu vào tệp, sau đó chạy tệp trên máy chủ mới. Sử dụng "-Bảng" để chỉ định [các] bảng bạn cần di chuyển.

Anthony


Môn học

Được viết bởi

Đăng

Ngày 08 tháng 11 năm 2006 12:33 PM

Re: Làm cách nào để sao chép một bảng từ một lược đồ MySQL sang lược đồ MySQL khác trong MYSL?

Ngày 08 tháng 11 năm 2006 01:22 PM

Xin lỗi, bạn không thể trả lời chủ đề này. Nó đã được đóng cửa.

Nội dung được sao chép trên trang web này là tài sản của chủ sở hữu bản quyền tương ứng. Nó không được xem xét trước bởi Oracle và không nhất thiết phải đại diện cho ý kiến ​​của Oracle hoặc bất kỳ bên nào khác.

Đó là hơi muộn nhưng chỉ cần phải giải quyết vấn đề tương tự, đây là quy trình được lưu trữ mà tôi đã đưa ra, trong trường hợp nó giúp người khác:

CREATE DEFINER=`whoever`@`wherever` PROCEDURE `copy_schema`[
    IN in_oldDB varchar[256],
    IN in_newDB varchar[256],
    IN in_copyData int[1]
]
BEGIN

DECLARE v_finished INTEGER DEFAULT 0;
DECLARE v_tname varchar[100] DEFAULT "";

DECLARE curTable CURSOR FOR 
SELECT `table_name`
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = in_oldDB
and TABLE_TYPE='BASE TABLE'
;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_finished = 1;

set @result=NULL;

# Create new schema if it doesn't exist
SET @sql = CONCAT['CREATE SCHEMA IF NOT EXISTS ',in_newDB,';'];
PREPARE create_schema FROM @sql;
EXECUTE create_schema;
DEALLOCATE PREPARE create_schema;

# Loop over tables in old schema
OPEN curTable;
clone_tables: LOOP

# get next table name
FETCH curTable INTO v_tname;

# Quit if we're done
IF v_finished = 1 THEN LEAVE clone_tables; END IF;

# Clone the table
SET @sql = CONCAT["CREATE TABLE `", in_newDB, "`.`", v_tname, "` LIKE `", in_oldDB, "`.`", v_tname, "`;"];
PREPARE clone_table FROM @sql;
EXECUTE clone_table;
DEALLOCATE PREPARE clone_table;

# Optionally copy data
#select v_tname; # This just gives some feedback in workbench for long-running copies
IF [in_copyData > 0] THEN
    SET @sql = CONCAT["INSERT INTO `", in_newDB, "`.`", v_tname, "` SELECT * FROM `", in_oldDB, "`.`", v_tname, "`;"];
    PREPARE clone_data FROM @sql;
    EXECUTE clone_data;
    DEALLOCATE PREPARE clone_data;
END IF;

# Result message
SET @result = IFNULL[CONCAT[@result,',',v_tname],v_tname];

END LOOP clone_tables;

# Close cursor
CLOSE curTable;

# Print result message
SELECT CONCAT["Copied the following tables from ", in_oldDB, " to ", in_newDB, ": ", @result];

END

Cách sao chép bảng trong MySQL: Cấu trúc trùng lặp, dữ liệu và chỉ mục chính xác

Sao chép các bảng trong MySQL là một hoạt động thường xuyên được thực hiện bởi DBA, các nhà phát triển và các nhà phân tích hàng chục lần một ngày vì nhiều lý do và với nhiều mục đích khác nhau. Trong hướng dẫn này, chúng tôi cung cấp một cái nhìn tổng quan chi tiết về các phương pháp phổ biến nhất để sao chép cấu trúc và dữ liệu bảng MySQL.

Đọc hướng dẫn để tìm hiểu:

  • Các cách để sao chép định nghĩa bảng mysql trong mysql
  • Ví dụ SQL để sao chép một bảng trong mysql
  • Cách sao chép dữ liệu bảng và cấu trúc vào cơ sở dữ liệu khác
  • Cách sao chép bảng MySQL bao gồm các chỉ mục và dữ liệu
  • Cách chèn dữ liệu bảng vào một bảng đã có
  • Cách nhanh nhất để sao chép bảng - bằng cách sử dụng công cụ GUI MySQL

Cách sao chép một bảng trong MySQL

MySQL không có câu lệnh bảng sao chép, điều đó có nghĩa là bạn sẽ phải sử dụng các phương pháp tiếp cận sang một bên để thực hiện thao tác. Có ba cách phổ biến để sao chép một bảng trong MySQL.

1. Tạo bảng ... như chọn câu lệnh để sao chép các thuộc tính và dữ liệu cột của bảng nguồn.

CREATE TABLE new_table_name
AS
SELECT 
  * 
FROM old_table_name;
                                    

2. Tạo bảng ... giống như câu lệnh để tạo một bảng trống dựa trên định nghĩa của bảng gốc, bao gồm các thuộc tính và chỉ mục cột.

CREATE TABLE new_table_name LIKE old_table_name;
                                    

3. Hiển thị bảng tạo để tạo tập lệnh tạo bảng cho bảng gốc.

SHOW CREATE TABLE customer\G
                                    

Chỉ cấu trúc bảng sao chép MуSQL

Bây giờ chúng ta hãy xem xét kỹ hơn các cách để tạo bảng trong MySQL bằng cách sử dụng các câu lệnh SQL.

Nếu bạn cần sao chép cấu trúc bảng, nhưng không phải là dữ liệu của nó, tốt hơn là sử dụng bảng tạo ... giống như câu lệnh.

Giả sử, chúng ta cần sao chép cấu trúc của bảng khách hàng. Truy vấn để sao chép cấu trúc như sau:

CREATE TABLE customer_new LIKE customer
                                    

Trong trường hợp bạn cần sao chép cấu trúc bảng bao gồm các khóa chính, các khóa và ràng buộc nước ngoài, hãy chạy câu lệnh BẢNG HIỂN THỊ ... sau đó sao chép tập lệnh cho bảng gốc, thay đổi tên của bảng và thực hiện tập lệnh.

Sao chép dữ liệu bảng vào bảng khác

Để sao chép dữ liệu từ bảng này sang bảng khác, hãy sử dụng Insert vào câu lệnh. Lưu ý rằng bạn có thể chỉ định các cột sẽ được sao chép.

INSERT INTO target_table [`column1`, `column2`]
  SELECT
    `column1`,
    `column2`
  FROM source_table;
                                    

Phương pháp này hoạt động hoàn toàn tốt nếu bạn đã sao chép cấu trúc bảng như chúng tôi đã làm trong ví dụ trên và bây giờ cần sao chép các giá trị.

Trong trường hợp bạn muốn sao chép tất cả các hàng từ bảng nguồn, hãy sử dụng cú pháp sau:

________số 8

Sao chép một bảng từ cơ sở dữ liệu này sang cơ sở dữ liệu khác

Trong MySQL, cách dễ nhất để sao chép bảng với dữ liệu của nó giữa hai cơ sở dữ liệu là sử dụng bảng Tạo làm câu lệnh, nhưng lưu ý rằng bạn cần cung cấp tên cơ sở dữ liệu đích làm tiền tố bảng.

CREATE TABLE new-database-name.new-table-name
AS
SELECT * FROM old-database.old-table-name;
                                    

Nếu bạn chỉ cần sao chép vào một lược đồ cơ sở dữ liệu khác, hãy sử dụng câu lệnh Creat Created Lits, nhưng một lần nữa đừng quên chỉ định tên cơ sở dữ liệu. Hãy nhớ rằng bằng một lược đồ trong MySQL thường có nghĩa là một lược đồ hệ thống. Nói một cách đơn giản, một lược đồ trong MySQL tương ứng với khái niệm cơ sở dữ liệu trong SQL Server.

INSERT newdb.mynewtable
SELECT *
FROM olddb.myoldtable;
0

Tuy nhiên, bằng cách chạy truy vấn ở trên, bạn sẽ tạo một bản sao của bảng nguồn với tất cả các thuộc tính cột, chỉ mục và khóa. Để chỉ sao chép cấu trúc bảng, bạn có thể chạy sử dụng mệnh đề giới hạn trong truy vấn để làm cho MySQL bỏ qua dữ liệu.

INSERT newdb.mynewtable
SELECT *
FROM olddb.myoldtable;
1

Sao chép bảng vào bảng mới: Ví dụ

Trong MySQL, bạn không phải sao chép toàn bộ bảng, bạn chỉ có thể sao chép các cột cụ thể. Đối với điều này, bạn có thể sử dụng bảng Tạo và câu lệnh Chọn như hiển thị bên dưới:

INSERT newdb.mynewtable
SELECT *
FROM olddb.myoldtable;
2

Giả sử, chúng tôi muốn tạo một film_copy mới của bảng sẽ bao gồm ba cột: film_id, film_title và film_descrip.

INSERT newdb.mynewtable
SELECT *
FROM olddb.myoldtable;
3

Cách nhanh nhất để sao chép bảng trong MySQL: DBForge Studio cho MySQL
dbForge Studio for MySQL

DBForge Studio cho MySQL cung cấp một cách nhanh chóng và dễ dàng để sao chép một bảng, thậm chí là một bảng lớn, mà không cần mã hóa giao diện đồ họa toàn diện và thân thiện với người dùng.

Bước 1. Nhấp chuột phải vào bảng bạn muốn sao chép trong cơ sở dữ liệu Explorer và chọn trùng lặp đối tượng. Chỉ định tên của bảng mới và bấm OK. Right-click the table you want to copy in Database Explorer and select Duplicate Object.
Step 2. In the dialog that opens, select the destination db.
Step 3. Select to copy the table data or structure only.
Step 4. Specify the name of the new table, and click OK.

Vẫn muốn tạo bảng bằng cách viết mã SQL? DBForge Studio cũng có rất nhiều thứ để cung cấp trong trường hợp đó. Trình chỉnh sửa SQL nâng cao của nó đi kèm với hoàn thành mã tinh vi, kiểm tra cú pháp mạnh mẽ, định dạng mã tức thời và hàng tá tính năng khác vô giá để mã hóa tay.
dbForge Studio has a lot to offer in that case too. Its advanced SQL Editor comes with sophisticated code completion, robust syntax check, instant code formatter, and dozens other features invaluable for hand coding.

Cách nhanh nhất và dễ nhất để tạo một bảng trong MySQL chắc chắn là bằng cách sử dụng DBForge Studio cho MySQL!

Với DBForge Studio cho MySQL, bạn cũng nhận được

  • Trình gỡ lỗi MySQL nâng cao
  • Bộ hồ sơ truy vấn mạnh mẽ
  • Truy vấn trực quan
  • Quản lí an ninh

  • Công cụ xuất và nhập dữ liệu
  • Lược đồ MySQL và Chức năng so sánh dữ liệu
  • Tiện ích bảng Pivot
  • Báo cáo thiết kế

Sự kết luận

Trong bài viết này, chúng tôi đã trình diễn các cách phổ biến nhất để tạo bảng trùng lặp trong MySQL: bởi các câu lệnh SQL khác nhau và bằng cách sử dụng IDE tất cả trong một để phát triển cơ sở dữ liệu, quản lý và quản trị cơ sở dữ liệu của HYSQL cho phép bạn thực hiện Bất kỳ các tác vụ liên quan đến cơ sở dữ liệu trong GUI. Chỉ trong vài lần nhấp, bạn có thể đổi tên bảng MySQL, thực hiện di chuyển cơ sở dữ liệu MySQL, sao chép cơ sở dữ liệu MySQL và nhiều hơn nữa.

Giải phóng tiềm năng phát triển cơ sở dữ liệu của bạn

Tính khả dụng trong các phiên bản của DBForge Studio cho MySQL

Tính năng

Doanh nghiệp

Chuyên nghiệp

Tiêu chuẩn

Thể hiện

Làm cách nào để sao chép một bảng từ lược đồ này sang lược đồ khác trong MySQL?

Trong MySQL, cách dễ nhất để sao chép bảng với dữ liệu của nó giữa hai cơ sở dữ liệu là sử dụng bảng Tạo làm câu lệnh, nhưng lưu ý rằng bạn cần cung cấp tên cơ sở dữ liệu đích làm tiền tố bảng. Tạo bảng Database mới. tên bảng mới là chọn * từ cơ sở dữ liệu cũ.use the CREATE TABLE AS statement, but note, that you need to provide the target database name as a table prefix. CREATE TABLE new-database-name. new-table-name AS SELECT * FROM old-database.

Làm cách nào để sao chép một bảng từ lược đồ này sang lược đồ khác?

Trong SQL Management Studio, nhấp chuột phải, cơ sở dữ liệu có bảng nguồn, chọn các tác vụ -> Xuất dữ liệu.Bạn sẽ có thể đặt SOUSTE và SPORTS và lược đồ nguồn, chọn các bảng bạn muốn sao chép và bạn có thể có lược đồ đích tạo các bảng sẽ được xuất.Lưu câu trả lời này.right click the database that has the source table, select Tasks -> Export data. You will be able to set source and destination server and schema, select the tables you wish to copy and you can have the destination schema create the tables that will be exported. Save this answer.

Làm cách nào để sao chép dữ liệu bảng từ lược đồ này sang lược đồ khác trong SQL Server?

Bạn có thể sử dụng truy vấn này để sao chép lược đồ bảng và dữ liệu: Chọn * vào DestinationDB.DBO.TableName từ SourcedB.Select * into DestinationDB. dbo. tableName from SourceDB.

Chúng ta có thể nhân đôi 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 bảng tạo ... như chọn câu lệnh: Tạo bảng new_table as select * từ gốc_table;Hãy cẩn thận khi sử dụng điều này để sao chép các bàn lớn. AS SELECT statement: CREATE TABLE new_table AS SELECT * FROM original_table; Please be careful when using this to clone big tables.

Bài Viết Liên Quan

Chủ Đề