Использование «AS» в MySQL - не как псевдонимы - PullRequest
2 голосов
/ 18 марта 2010

Я был немного удивлен, когда увидел следующее:

CREATE TEMPORARY TABLE X (ID int) AS SELECT NumColumn FROM Table

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

Спасибо

Ответы [ 3 ]

3 голосов
/ 18 марта 2010

Это то, как вы создаете временную таблицу и заполняете ее результатами запроса выбора.

Вы можете увидеть его в документации в самом низу спецификации CREATE TABLE

select_statement:
[ИГНОР | ЗАМЕНИТЬ] [КАК] ВЫБРАТЬ ... (Некоторое юридическое утверждение выбора)

1 голос
/ 04 марта 2012

CREATE TABLE (table name) AS SELECT * FROM (existing table name);

эта команда для копирования всей таблицы в другую таблицу;

1 голос
/ 18 марта 2010

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

create table x like y; 

Так как при этом создается только пустая таблица, вам также нужно запустить

insert into x (col1) select col1 from y;
...