2013-06-15 1 views
18

Я делаю что-то вроде databese, мне нужно скопировать одну таблицу из одной модели в другую, но я стараюсь, чтобы многие способы там не влияли. Есть ли способ для этого?Как скопировать таблицу между двумя моделями в Workbench Mysql?

+0

Там нет шва, чтобы быть любым способом сделать это. Все предоставленные ответы - это хаки. У кого-нибудь есть отчет об ошибке? –

ответ

17

Ваш лучший вариант - это, возможно, создание усеченной версии модели, содержащей объекты, которые вы хотите переносить. Затем откройте целевую модель и запустите File -> Include Model.... Выберите модель с разделенным исходным кодом, и там вы идете.

+1

как создать урезанную версию модели? –

+1

Удалив те объекты, которые вы не хотите импортировать в другую модель. –

+1

спасибо, майк! –

14

Если вы просто хотите сделать одну таблицу через MySQL Workbench.

В MySQL Workbench:

  1. Подключение к серверу MySQL
  2. Развернуть базы данных
  3. Щелкните правой кнопкой мыши на таблице
  4. Выберите Копировать в буфер обмена
  5. Выберите Создать себе

Оператор создания таблицы будет копировать d в буфер обмена похож на ниже:

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; 

Создание таблицы в новой базе данных

  1. Открыть новую вкладку SQL для выполнения запросов (File-> New Query Tab)
  2. Alter создать табличный код для включения базы данных для создания таблицы.

    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. Затем нажмите кнопку Execute (выглядит как осветления Болт)

Это будет копировать схему таблицы из одной БД в другую с помощью инструментальных средств MySQL. Просто обновить таблицы в базе данных, и вы должны увидеть вновь добавленный стол

+0

Это копирует таблицу в другую схему, но не копирует таблицу в другую МОДЕЛЬ, что и требовал первоначальный плакат. –

7
  1. Выберите вкладку с исходной базой данных
  2. В меню: Сервер-> Экспорт данных
  3. Выбор схемы и таблицы как объект схемы
  4. Выберите вариант Экспорт в самодостаточный файл и выберите пункт Создать дамп в одной транзакции (автономный только)
  5. Копировать путь полного файла в буфер обмен
  6. Начало Экспорт
  7. Выберите вкладку с целевой базой данных
  8. В меню: Сервер-> Импорт данных.Убедитесь, что имя целевой базы данных находится в верхнем левом углу зрения импорта данных
  9. Выберите Импорт из собственного содержимого файла и вставить полный путь к файлу из буфера обмена
  10. Выберите По умолчанию Цель схемы
  11. Выбор дамп базы данных (Dump структуры и Данные и т.д ...)
  12. Start Import
3

Я думаю, что стоит отметить, что

  1. скопированной таблицы может ссылаться на поля в таблицах исходной схемы, которых не существует, в схеме, где она должна быть скопирована. Возможно, неплохо было бы проверить таблицу на эти расхождения, прежде чем добавлять ее в другую схему.
  2. это, вероятно, хорошая идея, чтобы проверить совместимость двигателя (например, InnoDB и MyISAM) и набор символов.