web2py - 以编程方式插入一对多数据库

时间:2014-02-17 13:44:47

标签: sql database data-access-layer web2py relational

早安, 我有一个有三张桌子的数据库:

db.define_table('person',
            Field('name', length=100),
            Field('dob', length=10),
            Field('address', 'text', length=255),
            Field('countryname', length=3),
            Field('statename', length=100),
            )

db.define_table('opslist',
            Field('opid', length=10),
            Field('dop', length=10),
            Field('type_operation', length=25),
            )

db.define_table('cardlist',
            Field('opid', db.opslist),
            Field('name', db.person),
            Field('countryname', length=3, required=True),
            Field('statename', length=100, required=True),
            Field('zip', length=5, required=False),
            )

我会通过代码插入,意味着不使用sqlform或表单,一些数据进入...... 例如:如果我将所有值都插入到cardlist表中,则操作必须使我能够自动填充相关记录(如果不存在则创建新值)到其他表中。 这是因为它是带有外键的关系数据库...

使用DAL可以使用web2py吗?或者我是否必须编写我的原始sql命令?

谢谢大家

1 个答案:

答案 0 :(得分:1)

只需使用insert方法即可。它返回新创建的记录的ID,您可以使用该ID插入参考字段:

person = db.person.insert(name=..., dob=..., ...)
opslist = db.opslist.insert(opid=..., dop=..., ...)
db.cardlist.insert(opid=opslist, name=person, ...)