暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

gaussdb删除约束表技巧

原创 周冬强 2020-02-24
4340

高斯数据库删除表数据,有约束条件提示太不明确,根本不提示哪张表约束限制了。如下图文

image.png

SQL 错误 [1223] [28000]: [errorCode=GS-01223, SQLState=‘28000’, reason=‘errLine = 0, errColumn = 0, errMsg=Integrity constraint violated - child record found,ioClient:@746e0782’, sql=delete from gwlzxx where chrlzlx in (‘001’,‘002’) and dtmdjsj<sysdate+5, sessionId=66, serverIP=192.168.0.156:1888, clientIP=192.168.63.1.]

[errorCode=GS-01223, SQLState=‘28000’, reason=‘errLine = 0, errColumn = 0, errMsg=Integrity constraint violated - child record found,ioClient:@746e0782’, sql=delete from gwlzxx where chrlzlx in (‘001’,‘002’) and dtmdjsj<sysdate+5, sessionId=66, serverIP=192.168.0.156:1888, clientIP=192.168.63.1.]

[errorCode=GS-01223, SQLState=‘28000’, reason=‘errLine = 0, errColumn = 0, errMsg=Integrity constraint violated - child record found,ioClient:@746e0782’, sql=delete from gwlzxx where chrlzlx in (‘001’,‘002’) and dtmdjsj<sysdate+5, sessionId=66, serverIP=192.168.0.156:1888, clientIP=192.168.63.1.]

image.png

删除表约束提示不清楚,就把该表的主键,把所有的表找出来,通过一个小技巧sql:本来想通过表行数清理,但是数据字段表行数全部未空,就用的bytes字段,这样可以过滤一些空表。
SELECT ut.TABLE_NAME,ut.BYTES,COL.column_name FROM user_tables ut,USER_TAB_COLS col WHERE ut.table_name =col.table_name
AND col.column_name=‘INTGWLZLSH’ ORDER BY ut.BYTES DESC

把含有该字段的表全部清理出来,一张一张删掉。

SELECT 'select * from ‘||ut.TABLE_NAME||’; ’ FROM user_tables ut,USER_TAB_COLS col WHERE ut.table_name =col.table_name
AND col.column_name=‘INTGWLZLSH’ ORDER BY ut.BYTES DESC

image.png

SELECT 'delete from ‘||ut.TABLE_NAME||’; ’ FROM user_tables ut,USER_TAB_COLS col WHERE ut.table_name =col.table_name
AND col.column_name=‘INTGWLZLSH’ ORDER BY ut.BYTES DESC

image.png

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论