postgresql — Как узнать, какие столбцы не имеют нулевого ограничения в postgres через php?

Я пытаюсь построить некоторые элементы ввода HTML через php, чтобы заполнить строки в таблице postgres.

Я хочу добавить атрибут «требуется» для некоторых элементов ввода HTML (те, которые соответствуют столбцам, которые имеют ограничение NOT NULL).

Как я могу узнать, какие столбцы имеют это ограничение?

0

Решение

Использование PDO (и предложение Вот), вы должны быть в состоянии выполнить это следующим образом:

$q = $dbh->prepare("\d tablename");
$q->execute();
$table_fields = $q->fetchAll();
foreach ($table_fields as $field) {
if (strpos($field['Modifiers'], 'not null') !== FALSE) {
// this column ($field['Column']) has a "not null" constraint.
}
}

редактировать: то же самое, если у вас не получается использовать PHP-расширение PostgreSQL:

$q = pg_query("\d tablename");
while ($row = pg_fetch_array($result)) {
if (strpos($row['Modifiers'], 'not null') !== FALSE) {
// this column ($row['Column']) has a "not null" constraint.
}
}
0

Другие решения

использование Pomm и он выполнит эти запросы для проверки вашей базы данных с помощью CLI:

$ php vendor/bin/pomm.php pomm:inspect:relation test pika_chu
Relation public.pika_chu
+----+---------------+--------+-----------------------------------------------+---------+---------+
| pk | name          | type   | default                                       | notnull | comment |
+----+---------------+--------+-----------------------------------------------+---------+---------+
| *  | pika_chu_id   | int4   | nextval('pika_chu_pika_chu_id_seq'::regclass) | yes     |         |
|    | some_data     | int4   |                                               | yes     |         |
|    | nullable_data | bpchar |                                               | no      |         |
+----+---------------+--------+-----------------------------------------------+---------+---------+
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector