-1

是否可以使用无符号整数定义 web2py 模型Field?如果是这样,它可以如何完成?

底层数据库是 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']))

我发现在web2pypydal文档中都没有提到无符号整数。当然,web2py 或 pydal 都可能不支持无符号整数。我正在使用 web2py 版本 2.20.4-stable+timestamp.2020.05.02.22.03.36、pydal 版本 20200502.2 和 MySQL 版本 5.7.25。

4

2 回答 2

1

我不相信 pydal 明确支持无符号整数类型,但是如果您简单地指定type='integer',一切都应该工作,只要您不使用 pydal 进行迁移(即,它不会为您创建一个新的无符号整数列,但它会使用现有的列)。

于 2020-12-16T22:12:24.740 回答
1

我认为您想在该字段上定义一个 custom_qualifier :

Field('value', 'integer', custom_qualifier='UNSIGNED')

它只是在迁移时附加到字段定义中

这将使项目的可移植性降低,因为无符号整数在 PostgreSQL 或 MSSQL 中不是一个东西,例如。

于 2021-01-04T19:15:05.297 回答