Обсуждение: how to get the field types of a(n empty) table?

Поиск
Список
Период
Сортировка

how to get the field types of a(n empty) table?

От
knut.suebert@web.de
Дата:
Hello,

is there a possibility to get the field types of an empty table?

I made a class for editing tables in a html form. The data is inserted
or updated by something like

  "update $table set $row='$DATA'::$ftype[$row] where oid=$oid"

The type of the fields is gotten by a "select $rows from $table limit
1" -- but this is only possible, if there is at least one row inside a
table (for an "insert", "update" is no problem, of course).

It should be possible by reading something out of the postgres' system
tables, but I didn't found it.

Thank in advance,
Knut Sübert

Re: how to get the field types of a(n empty) table?

От
"Papp Gyozo"
Дата:
If you runs psql with -E option, then psql reveals the SQL equivalent of its
magical metacommands starting with a backslash ie.: \dv \d and so on.
Use those queries to get the columns' types!

<manual src="app-psql.html">
-E, --echo-hidden
Echoes the actual queries generated by \d and other backslash commands. You
can use this if you wish to include similar functionality into your own
programs. This is equivalent to setting the variable ECHO_HIDDEN from within
psql.
</manual>

----- Original Message -----
From: <knut.suebert@web.de>
To: <pgsql-php@postgresql.org>
Sent: Saturday, October 20, 2001 7:59 PM
Subject: [PHP] how to get the field types of a(n empty) table?


Hello,

is there a possibility to get the field types of an empty table?

I made a class for editing tables in a html form. The data is inserted
or updated by something like

  "update $table set $row='$DATA'::$ftype[$row] where oid=$oid"

The type of the fields is gotten by a "select $rows from $table limit
1" -- but this is only possible, if there is at least one row inside a
table (for an "insert", "update" is no problem, of course).

It should be possible by reading something out of the postgres' system
tables, but I didn't found it.

Thank in advance,
Knut S�bert

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org



Re: how to get the field types of a(n empty) table?

От
knut.suebert@web.de
Дата:
Papp Gyozo schrieb:
> If you runs psql with -E option, then psql reveals the SQL equivalent of its
> magical metacommands starting with a backslash ie.: \dv \d and so on.
> Use those queries to get the columns' types!

That doesn't work from php (at least with the settings here) -- but
turning on the debug mode and reading the syslog put me on the way to

    SELECT a.attname, format_type(a.atttypid, a.atttypmod)
    FROM pg_class c, pg_attribute a
    WHERE c.relname = 'tabname'
    AND a.attnum > 0 AND a.attrelid = c.oid
    ORDER BY a.attnum

Thanks,
Knut Sübert