gpt4 book ai didi

python - 将 sql 文本文件加载到变量中并通过 pymysql 提交插入/更新查询会产生警告 - 可以安全忽略吗?

转载 作者:行者123 更新时间:2023-11-29 15:14:50 25 4
gpt4 key购买 nike

我有一些存储在 .sql 文件中的存储过程。我想使用 pymysql 将这些添加到数据库中。因此,我将文件加载到变量中,如下所示:

    with open(filepath, 'r') as file:
sql = file.read()

然后我使用 pymysql 来提交,如下所示:

    connection = pymysql.connect(...)

with connection.cursor() as cursor:
cursor.execute(sql)

connection.close()

这似乎很有效,但我收到了令我担忧的警告。它们看起来像这样:

/usr/lib/python3/dist-packages/pymysql/cursors.py:322: Warning: (139, 'Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.')
self._do_get_result()
/usr/lib/python3/dist-packages/pymysql/cursors.py:322: Warning: (1246, "Converting column '' from VARCHAR to TEXT")
self._do_get_result()

我的问题是:忽略这些是否安全?

更新:

我弄清楚了第一个警告(关于行大小太大的警告):生成该警告的sql文本文件是 View 创建,而不是SP创建,并且 View 中的字段数量确实超出了行大小,所以谜团就在那里解决了。我仍在试图找出到底是什么导致了第二次警告。

更新2:

我弄清楚了第二个警告。生成该文件的 sql 文本文件是 SP 创建的,其中声明了一个变量 DECLARE v_sql VARCHAR(32000)。我将其更改为 VARCHAR(2000),警告就消失了。因此,看起来变量大于特定大小会生成该警告。

最佳答案

对于我发布的第一个警告,问题是:生成该警告的 sql 文本文件是 View 创建,而不是 SP 创建,并且 View 中的字段数量确实超出了行大小

对于我发布的第二个警告,问题是:生成该警告的 sql 文本文件是 SP 创建的,并且其中声明了一个变量 DECLARE v_sql VARCHAR(32000)。我将其更改为 VARCHAR(2000),警告就消失了。因此,看起来变量大于特定大小会生成该警告。

关于python - 将 sql 文本文件加载到变量中并通过 pymysql 提交插入/更新查询会产生警告 - 可以安全忽略吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59757624/

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