Я использую PHP & PotgreSQL сделать интерфейс для БД, с помощью этого активного осуществления записи для PHP ->http://www.phpactiverecord.orgсейчас() в качестве значения по умолчанию в Postgres
Это весьма полезно, но есть небольшая неприятность: при определении поля временной метки в виде таблицы с «сейчас()» в качестве значения по умолчанию - это двигатель не получает его :-(
SQL используется для запроса информации о столбцах здесь:
SELECT
a.attname AS field,
a.attlen,
REPLACE
(
pg_catalog.format_type(a.atttypid, a.atttypmod),
'character varying',
'varchar'
) AS type,
a.attnotnull AS not_nullable,
i.indisprimary as pk,
REGEXP_REPLACE
(
REGEXP_REPLACE
(
REGEXP_REPLACE(s.column_default,'::[a-z_ ]+',''),
'\'$',''
),
'^\'',''
) AS default
FROM
pg_catalog.pg_attribute a
LEFT JOIN
pg_catalog.pg_class c ON(a.attrelid=c.oid)
LEFT JOIN
pg_catalog.pg_index i ON(c.oid=i.indrelid AND a.attnum=any(i.indkey))
LEFT JOIN
information_schema.columns s
ON(s.table_name=???? AND a.attname=s.column_name)
WHERE
a.attrelid = (select c.oid from pg_catalog.pg_class c inner join
pg_catalog.pg_namespace n on(n.oid=c.relnamespace) where c.relname=?????
and pg_catalog.pg_table_is_visible(c.oid))
AND a.attnum > 0
AND NOT a.attisdropped
ORDER BY a.attnum`
????? изменяется на имя таблицы.
для столбца timestamp этот код возвращает '' или null (я не уверен, какой) в качестве значения по умолчанию. Как я могу изменить его, чтобы вернуть 'now()' или даже лучше - результат now()?
(то же самое для любого другого столбца с функцией результата в качестве значения по умолчанию)
Заранее спасибо!
спасибо! это то, что мне нужно – Eralde 2010-11-22 15:06:13