db2数据库表中系统自动生成的索引如何删除?
答案:2 悬赏:10 手机版
解决时间 2021-04-11 18:19
- 提问者网友:爱唱彩虹
- 2021-04-10 17:19
由于db2数据库中需要插入重复的记录,在插入时提示存在唯一性约束。找了下,发现表存在唯一性的索引,但是这索引是系统自动生成,drop index indexname删除不了.请各位DBA大神帮个忙
最佳答案
- 五星知识达人网友:从此江山别
- 2021-04-10 18:27
一般系统自带生成的唯一索引,都是主键索引吧?
所以你要让数据重复的话,看看是否主键?如果是的话,删除主键就是了(一定要想好,这个主键是否不需要了)
所以你要让数据重复的话,看看是否主键?如果是的话,删除主键就是了(一定要想好,这个主键是否不需要了)
全部回答
- 1楼网友:忘川信使
- 2021-04-10 19:30
从db2 9.7开始,你可以使用下面的查询检查db2中未使用的索引:
select indschema,indname,tabname from syscat.indexes
where lastused=‘01/01/0001’
lastused列告诉你索引在db2中的最后一次访问时间,但这个方法并不能保证百分之百返回准确的值,因为db2也会将更新这一列的时间当作访问时间,但你可以使用db2pd工具准确地获得自数据库启动以来索引的最后一次访问时间。
这个查询只能工作在db2 9.7或更高版本,但db2pd可以用于其它版本,在syscat.tables,syscat.indexes和syscat.packages表中都已经增加了一列lastused,因此从db2 9.7开始,你可以轻松查询出未使用的索引,表和包。
具体请参见链接
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯