2013-06-15 23 views
18

Tôi đang làm một số điều databese, tôi cần sao chép một bảng từ một mô hình khác, nhưng tôi cố gắng nhiều cách không có hiệu lực. Có cách nào để thực hiện việc này không?Làm thế nào để sao chép bảng giữa hai mô hình trong Mysql workbench?

+0

Không có đường may nào để làm điều này. Tất cả các câu trả lời được cung cấp là hack. Bất kỳ ai có một báo cáo lỗi mở ra về điều này? –

Trả lời

17

Tùy chọn tốt nhất của bạn có thể là tạo phiên bản rút gọn của mô hình chứa các đối tượng bạn muốn chuyển sang. Sau đó mở mô hình đích và chạy File -> Include Model.... Chọn mô hình nguồn bị tước và bạn sẽ đi đến đó.

+1

cách tạo phiên bản rút gọn của mô hình? –

+1

Bằng cách xóa các đối tượng bạn không muốn nhập trong mô hình khác. –

+1

cảm ơn rất nhiều, mike! –

14

Nếu bạn chỉ muốn thực hiện một bảng đơn thông qua Bàn làm việc MySQL.

Trong MySQL Workbench:

  1. Connect to a MySQL Server
  2. Mở rộng một cơ sở dữ liệu
  3. Right Click vào một bảng
  4. Chọn Copy To Clipboard
  5. Chọn Tạo Tuyên Bố

Tuyên bố tạo cho bảng sẽ là bản sao d vào clipboard của bạn tương tự như dưới đây:

CREATE TABLE `cache` (
    `cid` varchar(255) NOT NULL DEFAULT '', 
    `data` longblob, 
    `expire` int(11) NOT NULL DEFAULT '0', 
    `created` int(11) NOT NULL DEFAULT '0', 
    `headers` text, 
    `serialized` smallint(6) NOT NULL DEFAULT '0', 
    PRIMARY KEY (`cid`), 
    KEY `expire` (`expire`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

Tạo bảng trong cơ sở dữ liệu mới

  1. Mở một tab SQL mới để thực hiện các truy vấn (File-> New Query Tab)
  2. Alter tạo mã bảng để bao gồm cơ sở dữ liệu để tạo bảng.

    CREATE TABLE `databaseName`.`cache` (
        `cid` varchar(255) NOT NULL DEFAULT '', 
        `data` longblob, 
        `expire` int(11) NOT NULL DEFAULT '0', 
        `created` int(11) NOT NULL DEFAULT '0', 
        `headers` text, 
        `serialized` smallint(6) NOT NULL DEFAULT '0', 
        PRIMARY KEY (`cid`), 
        KEY `expire` (`expire`) 
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

  3. Sau đó nhấp vào nút Execute (trông giống như một tia sét)

Đó sẽ sao chép các schema bảng từ một db khác bằng cách sử dụng bàn làm việc MySQL. Chỉ cần làm mới các bảng trong cơ sở dữ liệu và bạn sẽ thấy bảng mới được bổ sung của bạn

+0

Điều này sẽ sao chép một bảng sang một giản đồ khác, nhưng nó không sao chép một bảng sang một MODEL khác, đó là những gì mà áp phích ban đầu được yêu cầu. –

7
  1. Chọn tab với cơ sở dữ liệu nguồn
  2. Trong menu: Server-> Dữ liệu xuất khẩu
  3. Chọn Schema và Schema Bảng như Object
  4. Chọn tùy chọn Xuất sang tệp khép kín và kiểm tra Tạo Dump trong một giao dịch đơn (khép kín chỉ)
  5. Sao chép đầy đủ đường dẫn tập tin vào clipboard
  6. Bắt đầu xuất khẩu
  7. Chọn tab có cơ sở dữ liệu đích
  8. Trong menu: Máy chủ-> Nhập dữ liệu.Hãy chắc chắn rằng tên cơ sở dữ liệu mục tiêu của bạn là ở góc trên cùng bên trái của nhìn Data Import
  9. Chọn Nhập từ khép kín tập tin và dán đường dẫn tập tin đầy đủ từ clipboard
  10. Chọn Mặc định Target Schema
  11. Chọn Content Dump (Structure Dump và dữ liệu vv ...)
  12. Bắt đầu nhập
3

tôi nghĩ rằng đó là đáng nói đến là

  1. một bảng sao chép có thể tham chiếu các trường trong bảng của lược đồ gốc, không tồn tại trong lược đồ nơi nó được sao chép. Nó có thể là một ý tưởng tốt, để kiểm tra bảng cho những khác biệt này, trước khi thêm nó vào lược đồ khác.
  2. có thể là một ý tưởng hay, để kiểm tra khả năng tương thích của động cơ (ví dụ: InnoDB vs MyISAM) và bộ ký tự.