是否可以用无符号整数Field
定义web2py模型?如果是,如何做到这一点
底层数据库是MySQL,下面是等效的CREATE TABLE
语句。
CREATE TABLE `t` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`value` int(11) unsigned DEFAULT NULL,
PRIMARY KEY (`id`)
)
;
我已经尝试过三次,但都没有成功。以下片段是尝试。
db.define_table('t', Field('value', 'integer unsigned'))
db.define_table('t', Field('value', 'integer', options=['unsigned']))
db.define_table('t', Field('value', 'integer', options=['UNSIGNED']))
我在web2py或pydal文档中都没有提到无符号整数。当然,web2py或pydal都可能不支持无符号整数。我使用的是web2py版本2.20.4-表+时间戳2020.05.02.22.03.36、pydal版本20200502.2和MySQL版本5.7.25。
我认为您想在字段上定义一个自定义限定符:
Field('value', 'integer', custom_qualifier='UNSIGNED')
它只是在迁移时被附加到字段定义中
这将降低项目的可移植性,因为例如,在PostgreSQL或MSSQL中不存在未签名的int。
我不认为pydal明确支持无符号整数类型,但如果您只指定type='integer'
,只要您不使用pydal进行迁移,一切都应该正常(即,它不会为您创建新的无符号整数列,但它可以与现有列一起使用(。