Note that even if you use 'integer' you can still set the IS_IN_DB validator to force the reference at the web2py level for input and update forms.
On Jun 7, 2:47 pm, Thadeus Burgess <thade...@thadeusb.com> wrote: > Technically speaking, you cannot do it, and *should* not do it. > > However you can hack around this by using a integer type instead of a > FK relationship. Basically store your integer without FK status, and > then you manually handle all of the relationships. > > -- > Thadeus > > On Mon, Jun 7, 2010 at 2:38 PM, kachna <petr.marti...@gmail.com> wrote: > > Hi, > > I am trying to define table with foreign key to the table stored in > > different database on same server (MySQL). > > > db_sys # db_sys on localhost mysql > > db_cs # db_cs on localhost mysql > > > db_sys.define_table('item', > > Field('id_producer', db_sys.producer, requires=IS_IN_DB(db_sys, > > 'producer.id', '%(name)s (%(id)s)', error_message=T('Vyrobce neni v > > databazi'))), > > Field('catalogue_no', 'string', label=T('Katalogove cislo'), > > notnull=True), > > Field('name', 'string', label=T('Polozka (interne)')) > > ) > > > db_cs.define_table('item', > > Field('title', 'string', label=T('Nazev')), > > Field('description', 'text', label=T('Popis')) > > ) > > > after execution I get: > > ....sql.py", line 1576, in _create_references > > SyntaxError: Table: table "item" does not exist > > > I quick-check sources and I thing that there is not too much work to > > make it work fine. Am I wrong? Is there different way? > > > thx