Db2 AS400-DDS唯一关键字

Db2 AS400-DDS唯一关键字,db2,Db2,我有一个具有唯一关键字的DDS。我需要删除这是有任何方法,我可以摆脱不改变来源。 有没有像在对象上使用SQL一样可以删除唯一键 我尝试了ALTERtable,但它询问的是我没有的约束名称。在我看来,定义UNIQUE约束是不同的,然后在源代码中给出UNIQUE关键字 我正在考虑注释唯一的关键字并重新升级该文件。我这样做了,在编译DDS之后,只需运行程序,它就可以在不重新编译程序的情况下执行。使用SQL删除唯一键。要查找约束名称,请使用下面的 select * from SYSCST

我有一个具有唯一关键字的DDS。我需要删除这是有任何方法,我可以摆脱不改变来源。 有没有像在对象上使用SQL一样可以删除唯一键

我尝试了
ALTER
table,但它询问的是我没有的约束名称。在我看来,定义
UNIQUE
约束是不同的,然后在源代码中给出
UNIQUE
关键字


我正在考虑注释唯一的关键字并重新升级该文件。我这样做了,在编译DDS之后,只需运行程序,它就可以在不重新编译程序的情况下执行。

使用SQL删除唯一键。要查找约束名称,请使用下面的

select * from SYSCST               
where CONSTRAINT_SCHEMA = 'schema'
and table_name = 'table';

从DDS源中删除
UNIQUE
关键字不会更改文件格式ID,因此不需要重新编译任何程序。但是,您可能有一个程序逻辑,它期望记录是唯一的,需要进行调整


您还可以使用
CHGPF文件(MYDATALIB/MYFILE)SRCFILE(mysrlib/qddsrc)
让系统就地重新创建文件;现有逻辑是自动处理的。基本上,DDS相当于
ALTER TABLE

@MAS400这里我所做的是在表中添加一列。然后运行更新查询从唯一列复制数据。删除了唯一列。但我猜您希望保留列名,然后必须使用旧名称重复此过程。就我个人而言,我觉得这是一个很大的努力,而不仅仅是重新推广DDS。谢谢Vijay…我认为,当我们有DDS UNIQUE关键字并编译PF时,它不会在系统表中创建任何条目,说明此约束已添加到文件中,可以引用。。。。。只是想找到其他方法,如果我能避免DDS的重新推广。。。