数据库
首页 > 数据库> > python-在web2py中,是否可以将现有的命名字段指定为旧数据库中的自动编号ID?

python-在web2py中,是否可以将现有的命名字段指定为旧数据库中的自动编号ID?

作者:互联网

我现有的MSSQL数据库中有几十个表
自动编号ID主键,但没有一个名为“ id”.他们是
而不是命名为PropertyID,ClientID等.官方文档
似乎建议将这些字段重命名为“ id”:

Legacy Databases

web2py can connect to legacy databases under some
conditions:

  • Each table must have a unique
    auto-increment integer field called
    “id”
  • Records must be referenced
    exclusively using the “id” field.

If
these conditions are not met, it is
necessary to manually ALTER TABLE to
conform them to these requirements, or
they cannot be accessed by web2py.

This should not be thought of as a
limitation, but rather, as one of the
many ways web2py encourages you to
follow good practices.

但是,这将需要在其他情况下打破数百个现有查询
使用此数据库的应用程序.当然必须有某种方法
为要使用的现有自动编号字段指定名称,而不是
‘ID’.

这似乎是Django got it rightweb2py got it horribly wrong的区域.还是我只是想念一些东西?似乎我只是想念一些东西…

解决方法:

那句话已经过时了. web2py支持三种情况:

>表格中有一个名为’id’的自动递增字段(默认)
>一个表具有一个不称为“ id”的自动递增字段,请使用

db.define_table(‘name’,Field(‘id_name’,’id’),…其他字段…)
>表格具有不同的主键

db.define_table(‘name’,… fields …,primarykey = [….])

主键是字段名称的列表.

选项3不适用于所有受支持的数据库,但可以轻松扩展.我们只是没有得到太多的要求,所以我们没有足够的测试器来解决所有可能的选择.请将此讨论移至web2py邮件列表中,我们很乐意为您提供更多帮助.

标签:web2py,python
来源: https://codeday.me/bug/20191024/1916914.html