加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 通过JDBC删除Derby中的所有约束

发布时间:2020-05-24 06:09:07 所属栏目:Java 来源:互联网
导读:如何通过JDBC删除Derby数据库中的所有约束?最佳答案您可以查询系统表SYS.SYSCONSTRAINTS,SYS.SYSTABLES和SYS.SYSSCHEMAS以获取给定模式的所有约束名称和相关表.首先,关于这些表的几句话(从Re: System tables in Derby开始): SYSTABLES has one row for each

如何通过JDBC删除Derby数据库中的所有约束? 最佳答案 您可以查询系统表SYS.SYSCONSTRAINTS,SYS.SYSTABLES和SYS.SYSSCHEMAS以获取给定模式的所有约束名称和相关表.

首先,关于这些表的几句话(从Re: System tables in Derby开始):

SYSTABLES has one row for each table in the database. Its primary key is TABLEID,which contains system-generated values. The SCHEMAID is a foreign key column,which references SYSSCHEMAS.

SYSSCHEMAS has one row for each schema in the database. Its primary key is SCHEMAID.

…

SYSCONSTRAINTS has one row for each constraint in the database (primary,unique,foreign and check constraints). Its primary key is CONSTRAINTID,which is a system-generated value. The TABLEID column is a foreign key referring to SYSTABLES.TABLEID. The SCHEMAID column is a foreign key referring to SYSSCHEMAS.SCHEMAID.

所以你可以使用以下查询:

SELECT 
    C.CONSTRAINTNAME,T.TABLENAME 
FROM 
    SYS.SYSCONSTRAINTS C,SYS.SYSSCHEMAS S,SYS.SYSTABLES T 
WHERE 
    C.SCHEMAID = S.SCHEMAID 
AND 
    C.TABLEID = T.TABLEID
AND 
    S.SCHEMANAME = 'MYSCHEMA';

然后循环并构建相应的ALTER TABLE DROP CONSTRAINT语句.

参考

> Derby support for SQL-92 features

>表22.对SQL-92功能的支持:约束表

> Re: System tables in Derby

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读