Hi Zusammen,
Ich hab mir eine ziemlich komplizierte Funktionalität basierend auf den Informationen, die ich mir über "SHOW COLUMNS FROM tableName" zurückliefern kann, aufgebaut. Genau genommen erfahre ich damit über jedes Feld, den Namen (Field), den Typ und die Länge (Type), obs null sein darf (Null), obs ein bestimmter Key ist (primary, unique, usw.)
Jetzt möchte ich diese Funktionalität auch unter PostgreSQL benutzen können, scheitere aber. Ich hab mir eine Query zusammengebastelt, die mir in etwas diese Informationen liefert:
SELECT a.attname,
format_type(a.atttypid, a.atttypmod) as type,
p.typname,
p.typlen,
p.typprtlen,
a.attnotnull,
a.atthasdef,
a.attstorage,
a.attnum
FROM pg_class AS c, pg_attribute AS a, pg_type AS p
WHERE c.relname = 'tableName'
AND a.attnum > 0
AND a.attrelid = c.oid
AND p.oid = a.atttypid
ORDER BY a.attnum
Alles anzeigen
Was ich damit nicht zurückbekommen kann, ist die Information über den Typ des Keys. Außerdem ist das ganze ziemlich kompliziert, weil die Typen der Felder in Postgres nicht mit denen von MySQL übereinstimmen und ich diese Information auch weiterverwende.
Hat jemand von Euch eine Idee, wie man die Informationen, die "SHOW COLUMNS" zurückliefert, möglichst 1:1 in Postgres bekommen könnte? Am besten sollte auch der Typ möglichst in MySQL-Notation zurückgeliefert werden.
Thanx 4 help.
P.S.: Mit DB::tableInfo von PEAR komm ich nicht wirklich weiter, weil das in der Version, die am Server ist, irgendwie nicht funkt und ich die Version am Server nicht updaten kann.