<type 'exceptions.SyntaxError'> 无效 table/column 名称 "size" 是 "ALL" 保留 SQL/NOSQL 关键字

<type 'exceptions.SyntaxError'> invalid table/column name "size" is a "ALL" reserved SQL/NOSQL keyword

      db.define_table('bookspace',
            Field('locaton','string'),
            Field('size','string'),
            Field('availablefrom', 'string'),
            Field('availableto', 'string'),
            Field('rooftype', 'string'),
            Field('sitetype', 'string'),
            Field('name', 'string'),
            Field('email', 'string'),
            Field('mobile', 'string'),
            Field('industry_food', 'string'),
            Field('industry_ecommerce', 'string'),
            Field('industry_furniture', 'string'),
            Field('industry_exim', 'string'),
            Field('industry_auto', 'string'),
            Field('industry_chemical', 'string'),
            Field('industry_logistics', 'string'),
            Field('industry_construction', 'string'),
            Field('industry_agriculture', 'string'),
            Field('industry_telecom', 'string'),
            Field('industry_others', 'string'),
            Field('parameter_rent','string'),
            Field('parameter_numgates', 'string'),
            Field('parameter_numdocks', 'string'),
            Field('parameter_centralheight', 'string'),
            Field('parameter_sidewallheight', 'string'),
            Field('parameter_parkingarea', 'string'),
            Field('parameter_firenoc', 'string'),
            Field('parameter_foodlicense', 'string'),
            Field('service_transportation','string'),
            Field('service_security', 'string'),
            Field('service_cctv', 'string'),
            Field('service_insurance', 'string'),
            Field('service_racking', 'string'),
            Field('service_pallets', 'string'),
            Field('service_forklift', 'string'),
            Field('service_powerbackup', 'string'),
            Field('service_loading', 'string'),
            format='%(name)s')

通过输入上面的代码我得到了这个错误(无效的 table/column 名称 "size" 是一个 "ALL" 保留的 SQL/NOSQL 关键字)帮我摆脱这个. 在这种情况下应该使用什么。 谢谢。

db = DAL(..., entity_quoting=True)

http://www.web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#Database-quoting-and-case-settings-entity_quoting-ignore_field

大小是数据库保留的一个词。也就是说,它们对数据库有特殊意义,因此不能重新定义。因此,您不能使用它们来命名数据库对象,例如列、表或索引。尝试使用不同的名称:)

您需要在 DAL 签名中为 check_reserved 设置适当的值。

读这个 - Reserved keywords

其他解决方案可以,使用rname 为字段指定其他名称。这个新名称将在 db 中使用,但您可以在代码中使用 'size'。

阅读Field constructor-rname