2010-11-22 12 views
0

Ich bin mit PHP & PotgreSQL eine Schnittstelle für einen DB zu machen, diese Active Record-Implementierung für PHP ->http://www.phpactiverecord.orgnow() als Standardwert in Postgres

Es ist sehr nützlich, aber es ist eine kleine Probleme: , wenn Sie ein Zeitstempel-Feld in einer Tabelle mit „now()“ als Standardwert definieren - dieser Motor es nicht bekommen :-(

SQL verwendet, um Informationen über die Spalten abzufragen sind hier:

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` 

????? wird in den Tabellennamen geändert.

für Zeitstempel Spalte dieser Code gibt '' oder Null (ich bin mir nicht sicher, welche) als Standardwert. Wie kann ich es ändern, um 'now()' oder noch besser - result of now() zurückzugeben?

(gleiche gilt für jede andere Spalte mit Funktionsergebnis als Standardwert)

Vielen Dank im Voraus!

Antwort

1

Führen Sie psql mit der Option -E aus, und führen Sie \d my_table aus, um die Definition der Tabelle anzuzeigen.

psql zeigt Ihnen die SQL, die es intern verwendet. Das sollte Ihnen alles geben, was Sie brauchen.

+0

danke! das ist genau das, was ich brauchte – Eralde

+0

Akzeptiere seine Antwort als Antwort, wenn es deine Antwort war –

Verwandte Themen