Merge branch 'prod'
This commit is contained in:
commit
f9efe09f24
@ -63,6 +63,8 @@ class ExecuteSQLResponse(BaseModel):
|
|||||||
success: bool
|
success: bool
|
||||||
rows_affected: Optional[int] = None
|
rows_affected: Optional[int] = None
|
||||||
message: str
|
message: str
|
||||||
|
columns: Optional[list[str]] = None
|
||||||
|
data: Optional[list[list]] = None
|
||||||
error: Optional[str] = None
|
error: Optional[str] = None
|
||||||
|
|
||||||
|
|
||||||
@ -197,13 +199,24 @@ async def execute_sql(request: ExecuteSQLRequest, authorization: Optional[str] =
|
|||||||
await cursor.execute(request.sql)
|
await cursor.execute(request.sql)
|
||||||
rows_affected = cursor.rowcount
|
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:
|
if request.autocommit:
|
||||||
await conn.commit()
|
await conn.commit()
|
||||||
|
|
||||||
return ExecuteSQLResponse(
|
return ExecuteSQLResponse(
|
||||||
success=True,
|
success=True,
|
||||||
rows_affected=rows_affected,
|
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:
|
except HTTPException:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user