如何在Teradata中指定用户约束和其他表

如何在Teradata中指定用户约束和其他表,teradata,Teradata,我是新来的Teradata。我使用Oracle已经有相当一段时间了。然而,当我试图在Teradata中运行以下查询时,它们根本不起作用。如何将以下查询转换为Teradata: select Table_name, constraint_name, constraint_type, r_constraint_name, Delete_rule, search_condition from user_constraints order by table_name, constraint_

我是新来的
Teradata
。我使用Oracle已经有相当一段时间了。然而,当我试图在
Teradata
中运行以下查询时,它们根本不起作用。如何将以下查询转换为
Teradata

select Table_name, constraint_name, constraint_type,
   r_constraint_name, Delete_rule, search_condition
 from user_constraints
  order by table_name, constraint_name;

select object_name, object_id, Object_type,
   Created, last_DDL_time, status
 from user_Objects
  order by object_name;

select table_name, column_name, data_type, data_length,
   data_precision, nullable, column_id, data_default
 from user_tab_columns
  order by table_name, column_name;

在teradata中,大多数元数据信息保存在dbc中

oracle中的对象可能映射到dbc.tables

从dbc.tables中选择*

最后一点:

  SELECT tablename, 
         columnname,
         columntype,
         columnformat,
         columnlength,
         Nullable,
         columnid,defaultvalue
    FROM dbc.columns
我希望满足用户的限制,一旦我发现了什么,就会更新


希望以上内容有帮助。

在teradata中,大多数元数据信息都保存在dbc中

oracle中的对象可能映射到dbc.tables

从dbc.tables中选择*

最后一点:

  SELECT tablename, 
         columnname,
         columntype,
         columnformat,
         columnlength,
         Nullable,
         columnid,defaultvalue
    FROM dbc.columns
我希望满足用户的限制,一旦我发现了什么,就会更新


希望以上内容有帮助。

对于大多数系统视图,有几种版本,以“X”结尾的版本与Oracle的“用户”视图类似,没有“X”则为“全部”,例如:

dbc.Tables:旧版本,自TD12以来已弃用 dbc.tablex:旧版本,自TD12以来已弃用 dbc.TablesV:推荐版本,所有数据库中的所有对象 dbc.TABLEVX:推荐版本,提交用户具有任何访问权限的对象

不同的约束类型存储在Teradata中的不同位置

外键:dbc.All_ri_childrenV

表级检查:dbc.Table_LevelConstraintsV

列级检查:dbc.ColumnsV.columnsconstraint

NULL:dbc.ColumnsV.Nullable

主键:dbc.IndicesV.IndexType='K'

唯一:dbc.IndicesV.IndexType='U'


但是您可能会注意到,并非所有主键/外键和唯一约束都在您的环境中实现,以避免额外的开销,因为加载过程已经维护了这一点(对于Teradata或任何其他数据仓库也是如此)。

对于大多数系统视图,都有几个版本,这些版本以“X”类似于Oracle的“用户”视图,没有“X”表示“全部”,例如:

dbc.Tables:旧版本,自TD12以来已弃用 dbc.tablex:旧版本,自TD12以来已弃用 dbc.TablesV:推荐版本,所有数据库中的所有对象 dbc.TABLEVX:推荐版本,提交用户具有任何访问权限的对象

不同的约束类型存储在Teradata中的不同位置

外键:dbc.All_ri_childrenV

表级检查:dbc.Table_LevelConstraintsV

列级检查:dbc.ColumnsV.columnsconstraint

NULL:dbc.ColumnsV.Nullable

主键:dbc.IndicesV.IndexType='K'

唯一:dbc.IndicesV.IndexType='U'


但是您可能会注意到,并非所有主键/外键和唯一约束都在您的环境中实现,以避免额外的开销,因为加载过程已经维护了这一点(对于Teradata或任何其他数据仓库也是如此).

+1非常感谢。一旦开始,我将分配奖金。请让我知道如何处理其他奖金。我不确定oracle中CONTAINT表中的某些列,但这就是我能想到的。从dbc.ConstraintName con INNER JOIN d中选择con.Name ConstraintName、constrainttype、TVMName Tablenamebc.tvm tvm On TABLEID=TVMID+1非常感谢。一旦开始,我将分配奖金。请让我知道如何处理其他奖金。我不确定oracle中的一些contraint表中的ColumnSn,但这就是我能想到的。从dbc.Constraint中选择con.Name ConstraintName、constrainttype、TVMName Tablename名称con内部连接dbc.tvm tvm On TABLEID=TVMID