#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
но тогда данные будут просто скопированы
если вы хотите, чтобы данные были одинаковыми, а ваша новая таблица обновлялась с использованием источника, и наоборот, вы можете создать представление