gpt4 book ai didi

mysql - 从 web2py 中的 Controller 更新记录

转载 作者:行者123 更新时间:2023-11-29 12:14:37 25 4
gpt4 key购买 nike

我想更新数据库表单 Controller 记录中的某些字段,因为我知道哪个记录是哪个记录以及哪个字段是哪个字段。我该怎么做?

例如:在数据库的“学生”表中,有一个名为“性别”的字段,可以是“男性”或“女性”。添加许多记录后,我添加一个名为“性别描述”的新字段。它应该是“女孩” ' 当性别为女性时为“男孩”,如果性别为男性则为“男孩”。我想自动为所有记录填充这个新字段。我如何实现这一点?

最佳答案

在 web2py shell 中,您可以执行以下操作:

db(db.students.gender == 'male').update(gender_description='boy')
db(db.students.gender == 'female').update(gender_description='girl')

您不想在应用程序代码中执行此操作,因为上面的代码应该只运行一次。另外,请确保“gender_description”字段已添加到模型定义中,并且迁移已运行(只要启用迁移,这就会自动发生)。

请注意,如果“gender”和“gender_description”之间始终存在一一对应的关系,这可能不是最好的数据库设计。

作为替代方案,您可以考虑创建 virtual field在 web2py 中:

db.define_table('students',
Field('gender', ...),
Field.Virtual('gender_description',
lambda r: 'boy' if r.gender == 'male' else 'girl'),
...)

关于mysql - 从 web2py 中的 Controller 更新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30034992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com