如何在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