早安, 我有一个有三张桌子的数据库:
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命令?
谢谢大家
答案 0 :(得分:1)
只需使用insert
方法即可。它返回新创建的记录的ID,您可以使用该ID插入参考字段:
person = db.person.insert(name=..., dob=..., ...)
opslist = db.opslist.insert(opid=..., dop=..., ...)
db.cardlist.insert(opid=opslist, name=person, ...)