Firebird SQL: проверить, установлено ли ограничение notNULL для определенного столбца? - PullRequest
1 голос
/ 08 февраля 2010

Я хочу, чтобы моя программа на C # знала, установлено ли ограничение notNULL для определенного столбца базы данных Firebird. Может ли это быть проверено динамически, возможно, путем запроса метаданных? Я нахожу документацию Firebird очень скудной.

Кроме того, как Firebird предоставляет информацию о том, какие столбцы существуют в конкретной таблице?

Ответы [ 2 ]

2 голосов
/ 08 февраля 2010

Чтобы сделать это вручную, используйте следующую инструкцию:

select rdb$null_flag
from rdb$relation_fields
where rdb$relation_name = 'MyTable' and rdb$field_name = 'MyField'

В качестве альтернативы вы можете попробовать FbDataReader.GetSchemaTable().

1 голос
/ 08 февраля 2010

Вам необходимо запросить метаданные Firebird об ограничениях - вся информация о них хранится в системных таблицах. Например, как это сделать, посмотрите на эту страницу: http://www.alberton.info/firebird_sql_meta_info.html (см. Раздел «Список ограничений»).

...