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_table
和CREATE 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吗的主要内容,如果未能解决你的问题,请参考以下文章
insert table 和create table as 区别
MySQL中表复制:create table like 与 create table as select
create table as 和create table like的区别