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

时间:2010-07-12 17:02:27

标签: python web2py

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

  

旧数据库

     

web2py可以连接到某些旧版数据库   条件:

     
      
  • 每张桌子都必须有唯一的   自动递增整数字段调用   “id”
  •   
  • 必须引用记录   专门使用“id”字段。
  •   
     

如果   这些条件是不符合的   必须手动ALTER TABLE到   使他们符合这些要求,或   web2py无法访问它们。

     

这不应该被认为是一个   限制,而是作为其中之一   web2py鼓励你的很多方式   遵循良好做法。

但是,这需要在其他查询中打破数百个现有查询 使用此数据库的应用程序。当然必须有一些方法 指定要使用的现有自动编号字段的名称而不是 'ID'。

这似乎是Django got it rightweb2py got it horribly wrong的区域。或者我错过了什么?似乎我只是遗漏了一些东西......

2 个答案:

答案 0 :(得分:4)

该陈述已过时。 web2py支持三种情况:

  1. 一个表有一个名为'id'(默认值)的自动增量字段
  2. 表有一个不称为“id”的自动增量字段,用

    定义表

    db.define_table('name',Field('id_name','id'),...other fields...)

  3. 表格具有不同的主键

    db.define_table('name',...fields..., primarykey=[....])

  4. 主键是字段名称列表。

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

答案 1 :(得分:1)

显然,这还没有成为当前的web2py书,但看起来事实上已经实现了。来自web2py google网址:web2py and keyed tables

注意:我是通过浏览New features not documented in PDF book (2 ed)

找到的