simulace MySQL na Postgresu

Karel Zak kzak na redhat.com
Čtvrtek Srpen 4 12:51:02 CEST 2005


On Wed, 2005-08-03 at 14:48 +0200, Jan Marek wrote:
> Ahoj Petre,
> 
> On Mon, Aug 01, 2005 at 06:35:09PM +0200, Petr Skoda wrote:
> > 
> > kurzor = db.cursor()
> > kurzor.execute("SHOW FULL FIELDS FROM " + table)
> > data = kurzor.fetchall()
> > 
> > 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'
> 
> zkusil sis ty SELECT-y provest rucne?
> 
> Z prvniho radku ti vypadne nazev tabulky + jeji OID a toto OID
> (to je to cislo '17218') pak doplnujes dale do dalsich dotazu...
> 
> Zkus si je postupne provest, uvidis, co ti vypisou...
> 
> Pro ostatni, co psali pozdeji: nejedna se o reseni v php, ale
> pythonu, ktery vysledky do asociativniho pole (bohuzel) nedava
> :-( Ale hodilo by se to...

Ale...

import pg

>>> src = pg.DB(dbname=aaa,host=bbb,user=ccc,passwd=ddd)
>>> src.query("SELECT id FROM foo LIMIT 1").dictresult()
[{'id': 105632}]

Object result obsahuje metody getresult() -- vraci pole a dictresult()
-- vraci python dictionary (tedy asoc.pole).

Balicek postgresql-python (FC/RH), nebo python-pygresql (debian).

	Karel

-- 
Karel Zak <kzak na redhat.com>



Další informace o konferenci Linux