execute sql result
This commit is contained in:
parent
f8a44e8d6d
commit
4e8e94861f
@ -63,6 +63,8 @@ class ExecuteSQLResponse(BaseModel):
|
||||
success: bool
|
||||
rows_affected: Optional[int] = None
|
||||
message: str
|
||||
columns: Optional[list[str]] = None
|
||||
data: Optional[list[list]] = None
|
||||
error: Optional[str] = None
|
||||
|
||||
|
||||
@ -197,13 +199,24 @@ async def execute_sql(request: ExecuteSQLRequest, authorization: Optional[str] =
|
||||
await cursor.execute(request.sql)
|
||||
rows_affected = cursor.rowcount
|
||||
|
||||
# 获取列名
|
||||
columns = None
|
||||
data = None
|
||||
if cursor.description:
|
||||
columns = [desc.name for desc in cursor.description]
|
||||
# 获取所有行数据
|
||||
rows = await cursor.fetchall()
|
||||
data = [list(row) for row in rows]
|
||||
|
||||
if request.autocommit:
|
||||
await conn.commit()
|
||||
|
||||
return ExecuteSQLResponse(
|
||||
success=True,
|
||||
rows_affected=rows_affected,
|
||||
message=f"SQL 执行成功,影响行数: {rows_affected}"
|
||||
message=f"SQL 执行成功,影响行数: {rows_affected}, 返回数据: {len(data) if data else 0} 行",
|
||||
columns=columns,
|
||||
data=data
|
||||
)
|
||||
|
||||
except HTTPException:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user