'commit'
This commit is contained in:
18
DbKit/Db.py
18
DbKit/Db.py
@@ -956,10 +956,10 @@ class Db:
|
||||
|
||||
# logger.info(f"准备插入数据到表 {table_name},主键字段: {primary_key}")
|
||||
|
||||
# 构建插入SQL
|
||||
# 构建插入SQL (移除 RETURNING,Doris/MySQL 不支持)
|
||||
columns = ', '.join(data.keys())
|
||||
placeholders = ', '.join([f":{key}" for key in data.keys()])
|
||||
sql = f"INSERT INTO {table_name} ({columns}) VALUES ({placeholders}) RETURNING {primary_key}"
|
||||
sql = f"INSERT INTO {table_name} ({columns}) VALUES ({placeholders})"
|
||||
|
||||
logger.debug(f"生成的插入SQL: {sql}")
|
||||
logger.debug(f"插入参数: {data}")
|
||||
@@ -971,14 +971,20 @@ class Db:
|
||||
session = await self.get_session()
|
||||
is_own_session = True
|
||||
|
||||
# 执行插入并获取主键
|
||||
# 执行插入
|
||||
result = await session.execute(text(sql), data)
|
||||
await session.commit()
|
||||
|
||||
# 获取插入的主键值
|
||||
primary_key_value = result.scalar()
|
||||
# logger.info(f"数据插入成功,主键值: {primary_key_value}")
|
||||
return primary_key_value
|
||||
# 如果 data 中包含主键,直接返回
|
||||
if primary_key in data:
|
||||
return data[primary_key]
|
||||
|
||||
# 否则尝试获取 lastrowid (某些 DB 支持)
|
||||
try:
|
||||
return result.lastrowid
|
||||
except:
|
||||
return None
|
||||
except Exception as e:
|
||||
logger.error(f"数据插入失败: {str(e)}")
|
||||
if session:
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user