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?
答案 0 :(得分:1)
与往常一样,在处理保留关键字时,像处理sys_location
一样将其包装在反引号中:
INSERT INTO `sys_location` (`rank`) VALUES (13000)
您可以根据需要逃避一切,但这通常不是必需的。在某些情况下,关键字是必需的,因为这些关键字的更改很少(即使不常见)。