修复python Sqlalchemy模型无法插入mysql语法错误

时间:2018-06-21 04:13:17

标签: python mysql sqlalchemy

Python模型:

 class SYSLocation(SYSModel):
        __tablename__ = 'sys_location'
        rank = db.Column(db.Integer)

致电:     db.session.add(model)

它生成mysql脚本:

 INSERT INTO `sys_location` ( rank) VALUES (13000)

sql错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'rank)
VALUES (13000)' at line 1

我检查此查询运行错误 mysql版本8.0.11 ,因为等级是关键字。 但是此sql可以运行 mysql版本10.1.25-MariaDB 。 如何修复我的Sqlalchemy模型运行所有版本的mysql?

1 个答案:

答案 0 :(得分:1)

与往常一样,在处理保留关键字时,像处理sys_location一样将其包装在反引号中:

INSERT INTO `sys_location` (`rank`) VALUES (13000)

您可以根据需要逃避一切,但这通常不是必需的。在某些情况下,关键字是必需的,因为这些关键字的更改很少(即使不常见)。