Thread: SHOW
Hi! What is the equivalent to the mysql's: SHOW COLUMNS FROM [TABLENAME]; Greetings Steve
> What is the equivalent to the mysql's: > SHOW COLUMNS FROM [TABLENAME]; in psql, \d will show you all tables and \d TABLE will show you the columns in the table. If you need it as a sql command, you can check the system tables. - Brandon ---------------------------------------------------------------------------- b. palmer, bpalmer@crimelabs.net pgp:crimelabs.net/bpalmer.pgp5
En un mensaje anterior, Stephan Bergmann escribió: > Hi! > > What is the equivalent to the mysql's: > SHOW COLUMNS FROM [TABLENAME]; \dt <tablename> See \h Fernando P. Schapachnik Planificación de red y tecnología VIA NET.WORKS ARGENTINA S.A. fschapachnik@vianetworks.com.ar Tel.: (54-11) 4323-3381
Hi! > > > What is the equivalent to the mysql's: > > SHOW COLUMNS FROM [TABLENAME]; > > in psql, \d will show you all tables and \d TABLE will show you the > columns in the table. If you need it as a sql command, you can check the > system tables. OK. That works for ./bin/psql, but NOT on the libpq's PQexec. What do I have to type here? Thanx again and lots of greetings from cool Spain Steve
> > > What is the equivalent to the mysql's: > > > SHOW COLUMNS FROM [TABLENAME]; > > > > in psql, \d will show you all tables and \d TABLE will show you the > > columns in the table. If you need it as a sql command, you can check the > > system tables. > > OK. That works for ./bin/psql, but NOT on the libpq's PQexec. > What do I have to type here? > > Thanx again and lots of greetings from cool Spain > Steve Start up psql with the -E on the command line. Then do \d TABLE. This will show you the actual SQL commands used by psql. See the psql man page for more details. HTH, -- Joe
Hi Joe. > > Start up psql with the -E on the command line. Then do \d TABLE. This will > show you the actual SQL commands used by psql. Doesn't change nothing. > See the psql man page for more details. No hints to find there respective to the libpq's PQexec. Greetings Steve
Stephan Bergmann <sb@ows.es> writes: > Hi Joe. > > > > > Start up psql with the -E on the command line. Then do \d TABLE. This will > > show you the actual SQL commands used by psql. > > Doesn't change nothing. Hmm, works for me. What version of Postgres are you using? Example: [doug@scooby doug]$ psql -E template1 ********* QUERY ********* SELECT usesuper FROM pg_user WHERE usename = 'doug' ************************* Welcome to psql, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit template1=# \d ********* QUERY ********* SELECT c.relname as "Name", 'table'::text as "Type", u.usename as "Owner" FROM pg_class c, pg_user u WHERE c.relowner = u.usesysid AND c.relkind = 'r' AND c.relname !~ '^pg_' UNION SELECT c.relname as "Name", 'table'::text as "Type", NULL as "Owner" FROM pg_class c WHERE c.relkind = 'r' AND not exists (select 1 from pg_user where usesysid = c.relowner) AND c.relname !~ '^pg_' UNION [more query here...] -- Free Dmitry Sklyarov! http://www.freesklyarov.org/ We will return to our regularly scheduled signature shortly.
Hi! > > Hmm, works for me. What version of Postgres are you using? I'm using 7.1.3 on Linux (compiled using the sources of pg). But thanx to the output list of Oliver I now have the result: how to get the header names of a table using the libpq. It's very interesting, that using PostgreSQL I need to build a huge query string: sprintf(pgquery2, "SELECT a.attname FROM pg_class c, pg_attribute a WHERE c.relname = '%s' AND a.attnum > 0 AND a.attrelid = c.oid;", ThisDBFileName); pgres = PQexec(pgsock2, pgquery2); ...when using e.g. MySQL I only need 4 words: sprintf(myquery2, "SHOW COLUMNS FROM %s", ThisDBFileName); if (mysql_query(mysql2, myquery2)) (...) Thanx Steve
The easy answer: > > > Start up psql with the -E on the command line. Then do \d TABLE. This will > > > show you the actual SQL commands used by psql. select relname from pg_class where relname not like 'pg_%%'; - Brandon ---------------------------------------------------------------------------- b. palmer, bpalmer@crimelabs.net pgp:crimelabs.net/bpalmer.pgp5