小编Wik*_*tor的帖子

Flask-sqalchemy 和 oracle 数据库 ID 不自动递增

我想使用带有 SQLAlchemy 模块的 Python 和 Flask 框架在我的数据库(Oracle 11g,但 Ubuntu 16.04 的 Express Edition)中创建一个新表。表的第一个字段和 ID 是一个整数字段,我希望它自动递增,但 Oracle 数据库不支持自动递增。我有一个添加新评论的表单,但是当我尝试添加新记录时,它报告了一个错误:

sqlalchemy.exc.IntegrityError: (cx_Oracle.IntegrityError) ORA-01400: 无法将 NULL 插入 ("WIKTOR"."TBL_COMMENTARIOS"."ID") [SQL: 'INSERT INTO tbl_comentarios (usuario, comentario, fecha) VALUES (:usuario , :comentario, :fecha) 返回 tbl_comentarios.id INTO :ret_0'] [参数: {'usuario': 'wiktor', 'comentario': 'hola', 'fecha': datetime.datetime(2017, 5, 24, 11, 23, 45, 39450), 'ret_0': }]

基本上它说 ID 不能为空,这是因为表单中没有字段可以添加它,所以它发送 id 为空,然后数据库模型的自动增量不起作用。这是代码:

db = SQLAlchemy()

class Comentarios(db.Model):
    __tablename__ = 'tbl_comentarios'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    usuario = db.Column(db.String(50))
    comentario = db.Column(db.Text())
    fecha …
Run Code Online (Sandbox Code Playgroud)

python database oracle11g flask flask-sqlalchemy

2
推荐指数
1
解决办法
1309
查看次数

标签 统计

database ×1

flask ×1

flask-sqlalchemy ×1

oracle11g ×1

python ×1