【问题标题】:Difference between create table syntax in teradatateradata 中创建表语法的区别
【发布时间】:2016-04-18 05:03:31
【问题描述】:

我无法弄清楚以下 teradata 语法之间的区别。有人可以帮忙吗。

CREATE TABLE EMP_TABLE_BACKUP AS EMP_TABLE WITH DATA;

CREATE TABLE EMP_TABLE_BACKUP AS (SELECT * FROM EMP_TABLE ) WITH DATA;

【问题讨论】:

  • 我相信两者没有区别。两者都将创建具有相同结构和数据的表。您可以在每个查询中使用不同的名称,并使用 SHOW TABLE 命令测试是否有任何差异。通常,不应该有任何

标签: database teradata


【解决方案1】:

CREATE TABLE AS existing_tableCREATE TABLE AS (SELECT...) 之间存在巨大差异:

当您复制现有表时,表和列级别的大多数属性都会被继承,例如SETMULTISET,一级和二级索引,NOT NULLCOMPRESS。只有触发器和外键不会被复制。

但是当你实现 SELECT 时,大多数属性都会丢失,例如每一列都可以为空 & 并且 PI 可能默认为第一列。

您可以在Teradata manuals 中获得所有详细信息

【讨论】:

  • 谢谢!。另一个问题 - 默认情况下是否在表上启用回退?
  • @Pugazh:FALLBACK 的默认设置是在数据库级别设置的,请参阅 dbc.DatabasesV.ProtectionTypeFN
猜你喜欢
  • 2018-11-08
  • 1970-01-01
  • 1970-01-01
  • 2013-06-11
  • 2016-10-08
  • 2015-11-22
  • 2019-03-13
  • 1970-01-01
  • 2014-03-03
相关资源
最近更新 更多