Создать таблицу в MySQL, которая соответствует другой таблице?
85
Я использую MySQL. У меня есть таблица под названием EMP, и теперь мне нужно создать еще одну таблицу (EMP_TWO) с той же схемой, теми же столбцами и теми же ограничениями. Как я могу это сделать?
Используйте LIKE для создания пустой таблицы на основе определения другой таблицы, включая любые атрибуты столбцов и индексы, определенные в исходной таблице:
СОЗДАТЬ ТАБЛИЦУ new_table LIKE original_table; Копия создается с использованием той же версии формата хранения таблицы, что и исходная таблица. Для исходной таблицы требуется привилегия SELECT.
LIKE работает только для базовых таблиц, но не для представлений.
CREATE TABLE ... LIKE не сохраняет параметры таблицы DATA DIRECTORY или INDEX DIRECTORY, которые были указаны для исходной таблицы, или какие-либо определения внешнего ключа.
+1 Пользуюсь MySQL в течение многих лет и совершенно не подозревал, что вы можете использовать его LIKEв CREATEутверждении.
jprofitt 06
@jprofitt Я знаю только потому, что хотел сделать это, чтобы протестировать что-то на производственном сервере (важный запрос) на днях -> очень полезно!
Manse
@ManseUK что, если я хочу скопировать таблицу из одной базы данных и воссоздать ее в другой базе данных?
Yaje 01
Это замечательно! Спасибо ... Действительно, очень полезно!
Hassantm
Если кому-то нужна такая же структура таблицы в другой базе данных, все, что вам нужно сделать, это CREATE TABLE new_db.new_table LIKE old_db.old_table:)
Джимми Адаро
13
Если вы хотите скопировать только структуру, используйте
createtable new_tbl like old_tbl;
Если вы хотите скопировать структуру, а также данные, используйте
Ответы:
Чтобы создать новую таблицу на основе другой структуры / ограничений таблиц, используйте:
CREATE TABLE new_table LIKE old_table;
Чтобы скопировать данные, если необходимо, используйте
INSERT INTO new_table SELECT * FROM old_table;
Создать табличную документацию
Остерегайтесь примечаний к опции LIKE:
источник
LIKE
вCREATE
утверждении.CREATE TABLE new_db.new_table LIKE old_db.old_table
:)Если вы хотите скопировать только структуру, используйте
create table new_tbl like old_tbl;
Если вы хотите скопировать структуру, а также данные, используйте
create table new_tbl select * from old_tbl;
источник
Создать таблицу в MySQL, которая соответствует другой таблице? Ответ:
CREATE TABLE new_table AS SELECT * FROM old_table;
источник
Почему бы тебе не пойти вот так
CREATE TABLE new_table LIKE Select * from Old_Table;
или вы можете фильтровать данные, как это
CREATE TABLE new_table LIKE Select column1, column2, column3 from Old_Table where column1 = Value1;
Чтобы иметь такое же ограничение в вашей новой таблице, сначала вам нужно будет создать схему, затем вы должны перейти к данным для создания схемы.
CREATE TABLE new_table LIKE Some_other_Table;
источник
like
иselect *
в одном заявлении? я получаю ошибку Также проверьте этот ответ stackoverflow.com/questions/10147565/create-table-like-a1-as-a2