通过匹配列名生成FK约束

时间:2016-08-25 06:29:15

标签: oracle plsql oracle11g oracle-sqldeveloper enterprise-architect

我有一个数据库结构,其中有两个表A& B

A包含少量列,其中包含列BiD作为表B主键的外键引用。

但问题是定义了列,但不存在FK约束。所以我正在寻找一种通过一些自动化方法生成这些约束的方法,因为我正在处理的真实数据库有超过一百个表。

我的数据库在Oracle 11g中,我也在Enterprise Architect中提供了ERD模型。任何这些解决方案都可行。请提出是否有这种可能性。

1 个答案:

答案 0 :(得分:0)

all_tab_columns(或dba_user_版本)将包含列名和他们所在的表。如果您只想查找名为{{1的所有列并创建一个外键约束到BiD,您可以执行类似

的操作
B

在实际系统中,您可能希望在构建SQL语句的地方使用本地变量,以便在执行之前记录它以防出现错误。如果您使用区分大小写的标识符,或者使用此模式生成的约束名称将超过30个字符,则您需要添加逻辑来处理这些情况。