You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改SQLObject创建的MySQL表中id列的数据类型为bigint

如何在SQLObject中将MySQL表的id列改为bigint类型?

要将SQLObject生成的MySQL表的id列从默认的int改为bigint,你之前使用字符串'bigint'赋值给idType的写法无效,正确的做法是使用SQLObject提供的类型类或指定数据库原生大写类型字符串。

方法一:使用BigIntCol类型(推荐)

导入BigIntCol并在sqlmeta类中指定idType为该类型的实例,这种方式能更好地适配SQLObject的类型系统:

from sqlobject import SQLObject, StringCol, IntCol, BigIntCol

class PersonThree(SQLObject):
    class sqlmeta:
        idType = BigIntCol()
    firstname = StringCol(length=50)
    lastname = StringCol(length=50)
    age = IntCol()

生成的MySQL表中,id列会被创建为BIGINT AUTO_INCREMENT类型。

方法二:使用数据库原生类型字符串

如果不想导入BigIntCol,也可以直接指定MySQL原生的大写类型字符串:

from sqlobject import SQLObject, StringCol, IntCol

class PersonThree(SQLObject):
    class sqlmeta:
        idType = 'BIGINT'
    firstname = StringCol(length=50)
    lastname = StringCol(length=50)
    age = IntCol()

额外说明

  • 确保SQLObject的连接配置正确指向MySQL数据库(例如使用mysql://user:password@host/database格式的连接字符串)。
  • 若表已提前创建,修改idType后需要手动执行SQL语句迁移表结构:
    ALTER TABLE person_three MODIFY COLUMN id BIGINT AUTO_INCREMENT;
    

内容的提问来源于stack exchange,提问作者Meet Gujrathi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 22:30:24