Как определить, какие внешние ключи определены в HSQLDB? - PullRequest
2 голосов
/ 25 апреля 2011

Как узнать, какие внешние ключи определены в HSQLDB?

Лучшее, что я заметил из документации:

select * from INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS;

Но это дало мне только следующее.

CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME UNIQUE_CONSTRAINT_CATALOG UNIQUE_CONSTRAINT_SCHEMA UNIQUE_CONSTRAINT_NAME MATCH_OPTION UPDATE_RULE DELETE_RULE 
------------------ ----------------- --------------- ------------------------- ------------------------ ---------------------- ------------ ----------- ----------- 
PUBLIC             PUBLIC            SYS_FK_10078    PUBLIC                    PUBLIC                   SYS_PK_10029           NONE         NO ACTION   CASCADE     
PUBLIC             PUBLIC            SYS_FK_10079    PUBLIC                    PUBLIC                   SYS_PK_10029           NONE         NO ACTION   NO ACTION   
PUBLIC             PUBLIC            SYS_FK_10080    PUBLIC                    PUBLIC                   SYS_PK_10071           NONE         NO ACTION   CASCADE     
PUBLIC             PUBLIC            SYS_FK_10116    PUBLIC                    PUBLIC                   SYS_PK_10071           NONE         NO ACTION   CASCADE     
PUBLIC             PUBLIC            SYS_FK_10120    PUBLIC                    PUBLIC                   SYS_PK_10029           NONE         NO ACTION   CASCADE     
PUBLIC             PUBLIC            SYS_FK_10124    PUBLIC                    PUBLIC                   SYS_PK_10029           NONE         NO ACTION   NO ACTION   
PUBLIC             PUBLIC            SYS_FK_10128    PUBLIC                    PUBLIC                   SYS_PK_10071           NONE         NO ACTION   CASCADE     
PUBLIC             PUBLIC            SYS_FK_10131    PUBLIC                    PUBLIC                   SYS_PK_10071           NONE         NO ACTION   CASCADE     

Мне нужно знать, какие таблицы истолбцам назначены внешние ключи, и я должен иметь возможность удалить их.

1 Ответ

6 голосов
/ 25 апреля 2011

Вы можете использовать следующие варианты выбора вместе с представлением REFERENTIAL_CONSTRAINTS:

select * from information_schema.constraint_column_usage
select * from information_schema.constraint_table_usage

В качестве альтернативы представление INFORMATION_SCHEMA.SYSTEM_CROSSREFERENCE является автономным представлением внешних ключей, их таблиц и столбцов.

См. Список http://hsqldb.org/doc/2.0/guide/databaseobjects-chapt.html#dbc_information_schema.

...