文章内容
2021/6/17 15:30:29,作 者: 黄兵
Field 'id' doesn't have a default value
在向MySQL插入数据的时候出现了如下错误:
MySQLdb._exceptions.IntegrityError: (1364, "Field 'id' doesn't have a default value")
出现错误的原因:
没有设置主键自增。
使用的是SQLAlchemy,具体模型定义如下:
class IPV4PublicAddress(db.Model):
__tablename__ = 'ip_v4_public_address'
id = db.Column(db.BigInteger, primary_key=True)
解决方案:
设置id自增,再SQLAlchemy模型中,修改代码如下:
class IPV4PublicAddress(db.Model):
__tablename__ = 'ip_v4_public_address'
id = db.Column(db.BigInteger, primary_key=True, autoincrement=True)
但是这样设置好像对数据库没有任何更改,自能手动修改数据库,设置id自增。
alter table ip_v4_public_address modify id bigint auto_increment;
如果此id是其他表的外键,还需要将其他表删除外键之后才能执行以上SQL
参考资料:
1、Field 'id' doesn't have a default value?
黄兵个人博客原创。
评论列表