科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Oracle系统中表外键的更名

Oracle系统中表外键的更名

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Oracle中表的外键是保证系统参照完整性的手段,而参照完整性是指分布在两个表中的列所满足的具有主从性质的约束关系...

作者:石骁騑 来源:yesky 2007年10月23日

关键字: ORACLE

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共3页)

一、生成系统目前的外键报告单

  首先生成系统目前模式下的所有外键情况报告单,SQL脚本如下:

******************************************************************************
脚本1:列出当前模式下所有外键的报告表,可以将其spool到某个文件中
******************************************************************************/
SELECT RPAD(child.TABLE_NAME,25,' ') Child_Tablename,
RPAD(cp.COLUMN_NAME,17,' ') Referring_Column,
RPAD(parent.TABLE_NAME,25,' ') Parent_Tablename,
RPAD(pc.COLUMN_NAME,15,' ') Referred_Column,
RPAD(child.CONSTRAINT_NAME,25,' ') Constraint_Name
FROM USER_CONSTRAINTS child,
USER_CONSTRAINTS parent,
USER_CONS_COLUMNS cp,
USER_CONS_COLUMNS pc
WHERE child.CONSTRAINT_TYPE = 'R' AND
child.R_CONSTRAINT_NAME = PARENT.CONSTRAINT_NAME AND
child.CONSTRAINT_NAME = cp.CONSTRAINT_NAME AND
parent.CONSTRAINT_NAME = pc.CONSTRAINT_NAME AND
cp.POSITION = pc.POSITION
ORDER BY child.OWNER,
child.TABLE_NAME,
child.CONSTRAINT_NAME,
cp.POSITION;

  该脚本生成所在模式下的所有外键情况,包括外键名称,父项表名称,子项表名称以及引用的列名称等。在SQL/PLUS下运行该脚本,在运行该脚本之前,可以将输出SPOOL到本地某个文件中。同时要注意,如果应用系统中的外键比较多且复杂的话,这个脚本的运行时间会比较长。

  二、生成删除系统自动命名的外键脚本

  在SQL/PLUS下,运行下面的脚本来生成删除系统自动命名(也就是外键名称以SYS为前缀)的所有外键,和生成外键报告一样,将生成脚本spool到某个文件中。

******************************************************************************
脚本2:删除系统自动生成的外键约束条件
******************************************************************************/
SELECT 'ALTER TABLE ' || TABLE_NAME ||' '||
'DROP CONSTRAINT ' || CONSTRAINT_NAME || ' ;'
FROM USER_CONSTRAINTS
WHERE CONSTRAINT_NAME LIKE 'SYS%' AND
CONSTRAINT_TYPE = 'R';


  运行该脚本,系统生成如下所示的删除外键脚本:

ALTER TABLE DJ_NSRXX DROP CONSTRAINT SYS_C000231;
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章