Oracle使用游标给所有数据表添加主键约束

栏目: 数据库 · 发布时间: 6年前

内容简介:应用场景: 某软件系统中的数据库因为版本不断升级,需要定期导入最新的数据表结构到测试数据库中的不同表空间进行测试.导入的时候容易出现主键约束丢失问题.因此设计下面的脚本来实现批量新增主键约束功能.具体操作步骤如下:一、使用PL/SQL Developer工具连接上服务器上的某个数据库,按F8执行下面的脚本获取到最终要添加主键的SQL语句。

应用场景: 某软件系统中的数据库因为版本不断升级,需要定期导入最新的数据表结构到测试数据库中的不同表空间进行测试.导入的时候容易出现主键约束丢失问题.因此设计下面的脚本来实现批量新增主键约束功能.

具体操作步骤如下:

一、使用PL/SQL Developer工具连接上服务器上的某个数据库,按F8执行下面的脚本获取到最终要添加主键的 SQL 语句。

Oracle使用游标给所有数据表添加主键约束

--Oracle使用游标给所有数据表添加主键约束

declare 

mytablename NVARCHAR2(200):=''; --定义要查询的数据表名称变量 

commentsql VARCHAR2(2000):=''; --定义要输出的执行语句字符串变量  

mytablekey NVARCHAR2(20):='ID'; --定义要查询的数据表主键字段名称变量 

cursor mycursor is select table_name from user_tables order by table_name;--定义游标      

myrecord mycursor%rowtype;  --定义游标记录类型   

Counter int :=0;   

begin   

open mycursor;  --打开游标   

if mycursor%isopen  then  --判断打开成功   

loop --循环获取记录集     

fetch mycursor into myrecord;

if mycursor%found then  --游标的found属性判断是否有记录  

begin  

mytablename:=myrecord.table_name;

commentsql:='alter table '||mytablename||' add constraint PK_'||mytablename||' primary key ('||mytablekey||');';

dbms_output.put_line(commentsql);      

--execute immediate commentsql;--立即执行语句(因为很多表主键字段不是ID容易报错所以注释掉)

--commit;    

end;   

else

exit; --获取游标中的记录     

end if;

end loop;   

else     

dbms_output.put_line('游标没有打开');   

end if; 

close mycursor;  --关闭游标   

end;

二、切换到PL/SQL Developer工具的输出选项卡,复制最终执行语句到新的SQL窗口。

Oracle使用游标给所有数据表添加主键约束

三、执行添加主键约束脚本 。

Oracle使用游标给所有数据表添加主键约束

四、补充说明:本例测试用的数据库中所有数据表字段中都有一个名称为ID的字段,执行多次后会提示一个数据表只能具有一个主键错误。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C语言程序设计

C语言程序设计

K. N. King / 吕秀锋、黄倩 / 人民邮电出版社 / 2010-4 / 79.00元

时至今日, C语言仍然是计算机领域的通用语言之一,但今天的 C语言已经和最初的时候大不相同了。本书最主要的一个目的就是通过一种“现代方法”来介绍 C语言,书中强调标准 C,强调软件工程,不再强调“手工优化”。这一版中紧密结合了 C99标准,并与 C89标准进行对照,补充了 C99中的最新特性。本书分为 C语言的基础特性、 C语言的高级特性、 C语言标准库和参考资料 4个部分。每章末尾都有一个“问与......一起来看看 《C语言程序设计》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

在线进制转换器
在线进制转换器

各进制数互转换器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具