Sql 执行后复制表
我想在执行该查询后创建新表Sql 执行后复制表,sql,Sql,我想在执行该查询后创建新表 create table newTable as select * from oldTable 然而,这似乎不起作用。在执行一些查询之后,如何获取新表?我不确定您使用的是什么DBMS或您遇到的错误,因此我将尝试回答多个系统的问题 如果您使用的是Oracle或PostgreSQL(此规则可能适用于其他一些系统),那么您的语法似乎是正确的。只要确保你的新表还不存在,否则它就会出错。如果您试图插入到一个现有的表中(我认为情况并非如此),您可以尝试以下操作- INSERT
create table newTable as select * from oldTable
然而,这似乎不起作用。在执行一些查询之后,如何获取新表?我不确定您使用的是什么DBMS或您遇到的错误,因此我将尝试回答多个系统的问题 如果您使用的是Oracle或PostgreSQL(此规则可能适用于其他一些系统),那么您的语法似乎是正确的。只要确保你的新表还不存在,否则它就会出错。如果您试图插入到一个现有的表中(我认为情况并非如此),您可以尝试以下操作-
INSERT INTO newTable SELECT * FROM oldTable
另一方面,如果您使用的是T-SQL(SQL Server),则可以在新表中进行选择。新表将使用旧表的架构创建
有关INTO子句的更多信息,请访问
您的代码应该如下所示-
SELECT *
INTO newTable
FROM oldTable
而且,指定列名和过滤器的工作方式也类似-
SELECT Column1, Column2, Column3, ...
INTO newTable
FROM oldTable
WHERE <Filter Condition>
选择第1列、第2列、第3列。。。
变成牛顿表
从旧桌子
哪里
不管是什么情况,如果您指定详细信息,您都会得到更多帮助。通常的语法如下:
CREATE TABLE new_table
AS (SELECT * FROM old_table);
例如:
CREATE TABLE suppliers
AS (SELECT id, address, city, state, zip
FROM companies
WHERE id > 1000);
尝试删除星号(*)并添加括号
阅读更多示例。正如您所说,您希望在执行后将值复制到新表中 如果您正在使用游标运行存储过程,是否应该关闭游标,然后使用查询,如下所示 从表2中选择*进入表1 如果要复制所选列,请选择
选择Column1,column2,。。。从表2进入表1,其中………您使用的是哪种DBMS?“似乎不工作”在任何DBMS中都不是有效的错误消息。@MeNoMore:当然,into关键字用于创建新表。如果在新表存在时运行查询,将抛出一个错误。如果Jays没有使用SQL Server呢?ANSI SQL标准指定了他/她正在使用的语法。@a_horse_和_no_name:编辑了我的答案,希望这更有用。遵守标准语法的不仅仅是Oracle。PostgreSQL和其他公司也做得很好。此外:PL/SQL仅用于存储过程。在存储过程之外,它被简单地称为SQL。select周围的括号是不必要的,
*
不会有什么区别。