小编Kig*_*gen的帖子

在 SQLAlchemy/Panacea 中处理生成的/虚拟 MySQL 列?(即只读列)

您如何处理 SQLAlchemy/Panacea 中生成的/虚拟 MySQL 列(即只读列)?

创建新元素时出现错误:sqlalchemy 尝试插入一个由 MySQL 5.7 生成的列在服务器端生成的列。

class PyTest(Entity):
    x = Field(Integer, default=0)
    y = Field(Integer, default=1)
    z = Field(Integer)

    using_options(tablename="PyTest")
Run Code Online (Sandbox Code Playgroud)

其中 Z 是从此语句创建的 y+z 服务器端

ALTER TABLE `test`.`PyTest` ADD COLUMN `z` INT AS (x + y);
Run Code Online (Sandbox Code Playgroud)

现在,在尝试将新元素刷新/提交到数据库时,它会崩溃。前任:

t2 = PyTest(x=10, y=1)

myscopedsession.merge(t2)
myscopedsession.flush()
Run Code Online (Sandbox Code Playgroud)

错误如下:

sqlalchemy.exc.InterfaceError: (_mysql_exceptions.InterfaceError) (-1, 'error totally whack') [SQL: u'INSERT INTO `PyTest` (x, y, z) VALUES (%s, %s, %s)'] [parameters: (10, 1, None)]
Run Code Online (Sandbox Code Playgroud)

python mysql sqlalchemy

5
推荐指数
0
解决办法
1293
查看次数

4
推荐指数
1
解决办法
2387
查看次数