|
|
|
Как в Interbase получить список Таблиц
|
|||
|---|---|---|---|
|
#18+
Как в Interbase, по аналогии с Oracle (select * from all_tables), получить список Таблиц. Триггеры/констрэйнты без проблем, а вот с Таблицами... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2003, 16:37 |
|
||
|
Как в Interbase получить список Таблиц
|
|||
|---|---|---|---|
|
#18+
select * from rdb$relations ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2003, 17:06 |
|
||
|
Как в Interbase получить список Таблиц
|
|||
|---|---|---|---|
|
#18+
какая здесь ошибка??? треба получить структуру из всех полей таблиц, с указанием ссылок из полей с ограничением FK в поля соответствующиих PK объединено 2 запроса, 1й включает то, что описано выше, второй добавляет остальные (не FK) поля /*-------------------------------*/ SELECT DISTINCT a.RDB$RELATION_NAME as FROM_DB, sgm1.rdb$field_name FROM_DB_FLD, (RTRIM(a.RDB$RELATION_NAME)|| '.' ||RTRIM(sgm1.rdb$field_name)) as FROM_FLD, (RTRIM(c.RDB$RELATION_NAME)|| '.' ||RTRIM(sgm2.rdb$field_name)) as TO_FLD, c.RDB$RELATION_NAME as TO_REL, sgm2.rdb$field_name FROM RDB$RELATION_CONSTRAINTS a, RDB$REF_CONSTRAINTS b, RDB$RELATION_CONSTRAINTS c, rdb$index_segments sgm1 JOIN RDB$RELATION_CONSTRAINTS cc on (cc.RDB$RELATION_NAME = c.RDB$RELATION_NAME) and (cc.RDB$CONSTRAINT_TYPE = "PRIMARY KEY") JOIN rdb$index_segments sgm2 on sgm2.rdb$index_name = cc.rdb$index_name WHERE (a.RDB$CONSTRAINT_NAME = b.RDB$CONSTRAINT_NAME) and (b.RDB$CONST_NAME_UQ = c.RDB$CONSTRAINT_NAME) and (a.RDB$INDEX_NAME=sgm1.rdb$index_name) UNION select A.rdb$relation_name, a.rdb$field_name,' ',' ',' ',' ' from rdb$relation_fields a, rdb$fields b where (a.rdb$field_source = b.rdb$field_name) and (a.rdb$relation_name || a.rdb$field_name not in ( SELECT a.RDB$RELATION_NAME || a.rdb$field_name FROM RDB$RELATION_CONSTRAINTS a, RDB$REF_CONSTRAINTS b, RDB$RELATION_CONSTRAINTS c, rdb$index_segments sgm1 JOIN RDB$RELATION_CONSTRAINTS cc on (cc.RDB$RELATION_NAME = c.RDB$RELATION_NAME) AND (cc.RDB$CONSTRAINT_TYPE = "PRIMARY KEY") JOIN rdb$index_segments sgm2 on sgm2.rdb$index_name = cc.rdb$index_name WHERE (a.RDB$CONSTRAINT_NAME = b.RDB$CONSTRAINT_NAME) AND (b.RDB$CONST_NAME_UQ = c.RDB$CONSTRAINT_NAME) AND (a.RDB$INDEX_NAME=sgm1.rdb$index_name) )) order by 1,2 asc; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 16:15 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32282309&tid=1579834]: |
0ms |
get settings: |
8ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
177ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 488ms |

| 0 / 0 |
