Создайте новую таблицу с помощью команды select

#sql #mysql

#sql #mysql

Вопрос:

Предположим, у меня есть команда, подобная этой:

 select name, age, haircolor from people where shoesize > 10;
  

Есть ли способ, которым я могу создать новую таблицу на основе того, что возвращает эта команда? Я хочу передать выходные данные этой команды в новую таблицу.

Значение:

 mysql> show tables; 
 ----------------- 
| Tables_in_db1   |
 ----------------- 
| people          |
 ----------------- 
1 rows in set (0.00 sec)

mysql> CREATE TABLE FROM "select name, age, haircolor from people where shoesize > 10;";
..?

mysql> show tables; 
 ----------------- 
| Tables_in_db1   |
 ----------------- 
| people          |
| NEW TABLE       |
 ----------------- 
1 rows in set (0.00 sec)
  

Ответ №1:

Да, синтаксис CREATE TABLE поддерживает инструкцию option SELECT в конце, это может быть так просто, как это:

  CREATE TABLE foo
 SELECT bar FROM xyz;
  

Ответ №2:

Вы можете использовать команду MySQL create table…выберите синтаксис:

Вы можете создать одну таблицу из другой, добавив оператор SELECT в конце инструкции CREATE TABLE:

 CREATE TABLE new_tbl SELECT * FROM orig_tbl;
  

Ответ №3:

Да, конечно, например :

 CREATE TABLE your_table AS SELECT name, age -- ...
  

Вы можете увидеть больше о синтаксисе здесь.

Ответ №4:

вы можете либо создать таблицу с помощью этого оператора select

но тогда данные будут просто скопированы

если вы хотите, чтобы данные были одинаковыми, а ваша новая таблица обновлялась с использованием источника, и наоборот, вы можете создать представление