See section 6.5.3 (near the end)
http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#CREATE_TABLE
This syntax is MySQL specific, but all DBs have this feature (all DBs of consequence, anyway).
MS SQL Server uses a Select * Into table_name from .... syntax
On 5 Feb 2003 at 12:44, Mike Starke wrote:
> /_> /_create temporary table tmp_idt
> /_> /_SELECT (idt.unit * idt.price) AS Sub_Total
> /_> /_FROM idt WHERE idt.myid = "1";
> /_> /_
> /_MySQL allows you to create a temp table and populate with the results of a select in one shot. That's what this
> /_statement does. If the 'create temporary table' statement is immediately followed by a select statement, the results
> /_of the select statement are populated into the the table using the columns names & data types returned from the select
> /_statement.
> /_
>
> I had no idea it worked that way (populated if immediately followed by a select..).
> I looked through the documentation on/at MySQL and could not find this info
> documented anywhere.
>
> /_As an aside, if the column idt.myid is an int datatype you don't need to quote it. If it's an integer and you quote
> /_it, MySQL must do an implicit data type conversion, which may slow things down a bit. If the myid column is a varchar
> /_data type then you must quote it.
> /_
>
> I didn't know that either...........many thanks for the tips today.
>
> I suspect everything you pointed out above is MySQL specific isn't it. (?)
> I have always made every effort to construct statements plain enough
> as to be ported amongst rdbm's.
>
> v/r
> -Mike
>
>
> ---------------------------------------------------
> PLUG-discuss mailing list - PLUG-discuss@lists.plug.phoenix.az.us
> To subscribe, unsubscribe, or to change you mail settings:
> http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss
>
>