SELECT INTO 语法
通过 SQL,您可以从一个表复制信息到另一个表。
SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。
SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。
注意:
MySQL 数据库不支持 SELECT ... INTO 语句,但支持 INSERT INTO ... SELECT。
复制所有的列插入到新表
SELECT *
INTO newtable [IN externaldb]
FROM table1;
复制指定的列插入到新表
SELECT column_name(s)
INTO newtable [IN externaldb]
FROM table1;
提示:新表将会使用 SELECT 语句中定义的列名称和类型进行创建。您可以使用 AS 子句来应用新名称。
SELECT INTO 示例
创建 articles 表的备份
SELECT *
INTO articles_bak
FROM articles;
复制指定列插入到新表中
SELECT title, author, pub_date
INTO articles_bak_2012
FROM articles;
使用where条件语句进行筛选
SELECT *
INTO articles_bak
FROM articles
WHERE pub_date >= '2010-01-01';
将关联查询结果数据插入到新表中
SELECT articles.title, article_view_log.count, article_view_log.log_date
INTO article_views
FROM
LEFT JOIN article_view_log
ON articles.id=article_view_log.aid;
提示:SELECT INTO 语句可用于通过另一种模式创建一个新的空表。只需要添加促使查询没有数据返回的 WHERE 子句即可:
SELECT *
INTO articles_2012
FROM articles
WHERE 1=0;
MySQL 实现示例
mysql不支持 select insert into语句
可以使用如下替代
全表复制
CREATE TABLE articles_2012
AS
SELECT * FROM articles
WHERE筛选
CREATE TABLE articles_2013
AS
SELECT * FROM articles
WHERE id>10
创建新表保存关联查询结果
CREATE TABLE articles_views
AS
(
SELECT *
FROM articles
LEFT JOIN article_view_log
ON articles.id=article_view_log.aid
WHERE id>3
)
讨论区