создание нескольких таблиц с помощью одной команды sql - PullRequest
0 голосов
/ 23 января 2010

Я искал это здесь и в Google и неожиданно не смог найти ответ. Я попытался создать синтаксис для отправки в MySQL, который будет создавать несколько таблиц с одинаковыми столбцами, но он вернул ошибку. Можете ли вы указать, что не так с моим синтаксисом, или это вообще возможно?

 CREATE TABLE news, life
 (
 id int PRIMARY KEY AUTO_INCREMENT ,
 name varchar( 30 ) ,
 email varchar( 50 ) ,
 COMMENT text,
 datetime datetime,
 ip varchar( 20 )
 ) 

Ответы [ 2 ]

3 голосов
/ 23 января 2010

вы находитесь в mysql, поэтому вы можете использовать предложение LIKE команды CREATE TABLE; таким образом, вы также получите скопированные атрибуты столбцов и индексы, например,

CREATE TABLE new_tbl LIKE orig_tbl;

см. http://dev.mysql.com/doc/refman/5.1/en/create-table.html

Используйте LIKE для создания пустой таблицы основанный на определении другого таблица, включая любые атрибуты столбца и индексы, определенные в оригинале таблица: CREATE TABLE new_tbl LIKE orig_tbl; Копия создана с использованием та же версия таблицы хранения формат как исходная таблица. Привилегия SELECT требуется на оригинальный стол. LIKE работает только для базовые таблицы, а не для просмотра. СОЗДАЙТЕ ТАБЛИЦА ... НРАВИТСЯ не сохраняет КАТАЛОГ ДАННЫХ или КАТАЛОГ ИНДЕКСА параметры таблицы, которые были указаны для исходная таблица или любой внешний ключ определения.

2 голосов
/ 23 января 2010

Это невозможно.

Подумайте о дизайне вашего стола. Похоже, вам следует подумать о создании одной таблицы и добавлении еще одного столбца type, который будет news или life (или ссылкой на другую таблицу, определяющую типы).


Если вам действительно нужны две таблицы, создайте свою первую таблицу:

 CREATE TABLE news
 (
 id int PRIMARY KEY AUTO_INCREMENT ,
 name varchar( 30 ) ,
 email varchar( 50 ) ,
 COMMENT text,
 datetime datetime,
 ip varchar( 20 )
 )

, а затем

CREATE TABLE life AS ( SELECT * FROM news where 1=2 );

Индексы и ограничения (UNIQUE, PRIMARY KEY, FOREIGN KEY) не будут скопированы. Вам придется обращаться с ними самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...