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

Reply via email to