simulace MySQL na Postgresu
Petr Skoda
skoda na pleione.asu.cas.cz
Pondělí Srpen 1 18:35:09 CEST 2005
Omlouvam se za lehky off-topic, ale google selhal totalne
a predpokladam, ze lidi delajici s Postgresql ho provozuji na linuxu:
Potrebuju predelat skripty v pythonu pro MySQLdb konektivitu
na pripojeni na PostgreSQL pres pyPgSQL balik. Oba implementuji rozhrani
API-DB , vysledky lezou pres kurzory apod ...
Jenze v tech skriptech se zada vypsat jmena vsech sloupcu z dane tabulky ,
s cimz se dal pracuje - konkretne se hledaji podle jmena sloupce v dane
tabulce nejaka klicova slova v externich souborech, tedy pokud zmenim
tabulku - pridam sloupce, chci je vedet v python slovniku.
Na to se v MySQLdb pouziva volani
kurzor = db.cursor()
kurzor.execute("SHOW FULL FIELDS FROM " + table)
data = kurzor.fetchall()
Ale bohuzel Postgres neumi ani toto ani jinde bezne
"select columns from tabulka".
presne na toto se ptal nekdo i v postgres konferenci a odpoved byla
bohuzel ze to umi jen klient psql (\d tabulka)
autori se vymlouvaji, ze je to slozite u objektu ale ze se obsah tohoto
prikazu preklada do SQL, ale kdyz jsem si vypsal , nejsem z toho sachovani
s internimi taulkami OIDy apod vubec moudry. Navic to nevraci jen sloupce
ale i spoutu delasich veci o tabulce co nechci.
krome teto odpovedi/neodpovedi jsem uz nikde nic nenasel.
Je mi velmi divne, ze tuto funkci nikdo nepotreboval - nenajde se nekdo
kdo by mi polopatisticky napsal jak to udelat ?
zde je vystup psql -E
testreticon=# \d reticon
********* QUERY **********
SELECT c.oid,
n.nspname,
c.relname
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE pg_catalog.pg_table_is_visible(c.oid)
AND c.relname ~ '^reticon$'
ORDER BY 2, 3;
**************************
********* QUERY **********
SELECT relhasindex, relkind, relchecks, reltriggers, relhasrules
FROM pg_catalog.pg_class WHERE oid = '17218'
Vubec tomu nerozumim, napr jak najdu ze mam pouzit 17218 ,
Navic ta funkce vraci i indexy apod, takze to stale neni ono
Diky za radu
*************************************************************************
* Petr Skoda Tel : (323) 649201, l. 361 *
* Stelarni oddeleni (323) 620361, 620136 *
* Astronomicky ustav AVCR Fax : (323) 620250 *
* 251 65 Ondrejov e-mail: skoda na sunstel.asu.cas.cz *
* Ceska republika pskoda na mbox.cesnet.cz *
*************************************************************************
Další informace o konferenci Linux