db2中可以实现create table A as select * from B吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了db2中可以实现create table A as select * from B吗相关的知识,希望对你有一定的参考价值。

  好像不行,可以用两条命令完成

create table a like b
insert into a select * from
  实例讲解DB2数据库中SELECT语句高级用法
  1、创建结果表
  create table new_table_name as
  (select * from table_name) definition only;
  2、创建物化查询表(MQT)
  create table new_table_name as
  (select * from table_name)
  data initially deferred refresh deferred;
  refresh table new_table_name;
  注意:物化表类似一个查询,没有真正形成表,类型显示为Query。但它完全可以当表来用。
  3、复制表结构
  create table new_table_name like table_name;
参考技术A 《生死约》:长路漫漫,芳草萋萋,生生死死,衷情难寄。肝肠寸断的苦等,舍生求死的别离。是天的不公,是命的捉弄,是死的苦斗,是生的抗争。旷古未闻的前世生死约,将留下多少字字蹄血的断肠声。

何时将 CREATE TABLE AS SELECT 与 CREATE TABLE LIKE?

【中文标题】何时将 CREATE TABLE AS SELECT 与 CREATE TABLE LIKE?【英文标题】:When to CREATE TABLE AS SELECT versus CREATE TABLE LIKE? 【发布时间】:2013-06-29 00:05:48 【问题描述】:

我可以使用以下方式“复制”表格:CREATE TABLE copy LIKE original_tableCREATE TABLE copy as select * from original_table

在后一种情况下,仅复制数据,但不复制主键等。 所以我想知道我什么时候更喜欢使用select as

【问题讨论】:

【参考方案1】:

它们做不同的事情。 CREATE TABLE LIKE 创建一个 empty 表,其结构与原始表相同。

CREATE TABLE AS SELECT 将数据插入到新表中。结果表不为空。此外,CREATE TABLE AS SELECT 常用于更复杂的查询,以生成临时表。在这种情况下没有“原始”表。查询的结果只是被捕获为一个表格。

编辑:

进行备份的“标准”方法是使用 . . . . backup 在数据库级别。这将备份数据库中的所有对象。备份多个表很重要,例如,为了维护对象之间的关系完整性。

如果您只想要一个表的真实副本,请先执行create table like,然后执行insert into。但是,这可能会对 auto_increment 字段构成挑战。您可能希望删除列上的 auto_increment 属性,以便填充此类列。

【讨论】:

那么创建表的备份副本的标准方法是什么?【参考方案2】:

当新表不是旧表的精确副本,而是仅包含选定的列或连接产生的列时,通常使用第二种形式。

【讨论】:

【参考方案3】:

当您有复杂的选择时,最有可能使用“Create Table as Select...”

例如:

create table t2 as select * from t1 where x1=7 and y1 <>2 from  t1;

现在,如果您不需要如此复杂的选择,显然您应该使用 Create Like。您也可以使用此语法更改 PI。

【讨论】:

以上是关于db2中可以实现create table A as select * from B吗的主要内容,如果未能解决你的问题,请参考以下文章

DB2 上copy表结构及数据

insert table 和create table as 区别

MySQL中表复制:create table like 与 create table as select

create table as 和create table like的区别

慎用create table as select,一定要注意默认值的问题

MongoDB 实现 create table tab2 as select