Peewee模型中的Auto_increment自定义主键

时间:2014-06-27 11:53:00

标签: python peewee

我希望主键id字段为Bigint

class Tweets(Model):
    id = BigIntegerField(primary_key=True)
    ...

但它需要auto_incremented,我无法在Peewee文档中找到方法。 请建议是否可能。

更新:我正在使用MySql db。

4 个答案:

答案 0 :(得分:3)

Peewee自动生成一个整数id列作为主键,具有auto_increment属性。对于您使用Peewee创建的任何表格都是如此。

IntegerField很可能满足您的需求; BigIntegerField很少有用。你真的需要大于2147483647的数字吗?你会插入超过20亿行吗?

请参阅:http://dev.mysql.com/doc/refman/5.5/en/integer-types.html

答案 1 :(得分:1)

看起来应该有所帮助。

创建表后,执行:

db.register_fields({'primary_key': 'BIGINT AUTOINCREMENT'})

之后当你说

class Tweets(Model):
    id = PrimaryKey()
    ...
    class Meta():
        db = db

然后在mysql中该字段将显示为具有自动增量的BigInt

答案 2 :(得分:0)

我认为最方便的答案是使用SQL constraints

import peewee
class MyModel(peewee.Model):
    id = peewee.BigIntegerField(primary_key=True, unique=True,
                                constraints[peewee.SQL('AUTO_INCREMENT')])

答案 3 :(得分:0)

Peewee,3.1,包括一个BigAutoField,它是一个使用64位整数存储的自动递增整数字段。应该做的诀窍:

http://docs.peewee-orm.com/en/latest/peewee/api.html#BigAutoField