gpt4 book ai didi

python - 'SELECT LAST_INSERT_ID()' 处的语法错误

转载 作者:行者123 更新时间:2023-11-29 07:31:18 30 4
gpt4 key购买 nike

如果我在 python 中运行查询,它会返回语法错误。

但是,如果我用 navicat 运行它,它工作正常。

为什么不在python中运行?

sql_query

INSERT INTO
solarsystem
(
solarsystemName,
solarsystemPositionX,
solarsystemPositionY,
solarsystemSectorId,
solarsystemAngle
)
VALUES
('Lima [698/562]',698,562,13,171);

SELECT LAST_INSERT_ID();

错误

1064, u"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 'SELECT LAST_INSERT_ID()'


[编辑]

创建.py

[...]

args = (solarsytem['solarsystemName'], solarsytem['x_pos'], solarsytem['y_pos'],
solarsytem['sector_id'], solarsytem['angle'])

with self.engine.begin() as connection:
result_proxy = connection.execute(sql_query, args).first()

[...]

更新

如果我尝试将 INSERT 作为单个查询,这会起作用。

但是,SELECT LAST_INSERT_ID(); 不起作用。它返回:

TypeError: not all arguments converted during string formatting

最佳答案

通过您的连接执行此操作以获取插入游标对象的最后一行 ID,

你可以使用

connection.insert_id()

或者如果你有一个光标:

cursor.lastrowid 

编辑

对于 sqlalchemy,您可以使用:

with self.engine.begin() as connection:
result_proxy = connection.execute(sql_query, args).first()
last_id=result_proxy.inserted_primary_key[0]

您的 ID 将保存在 last_id

但是您必须从您的 sql_query 中删除 SELECT LAST_INSERT_ID();

关于python - 'SELECT LAST_INSERT_ID()' 处的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51112813/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com