У меня есть несколько хранимых процедур, которые хранятся в файле. sql. Я хочу использовать py mysql, чтобы добавить их в БД. Итак, я загружаю файл в переменную, как это:
with open(filepath, 'r') as file:
sql = file.read()
Затем я использую py mysql, чтобы представить это, как это:
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, и количество полей в представлении действительно превышало размер строки, так что загадка была решена там. Я все еще пытаюсь выяснить, что именно вызывает второе предупреждение.
Обновление 2:
Я понял второе предупреждение. Текстовый файл sql, который сгенерировал этот файл, был созданием SP, и там была переменная, объявленная как DECLARE v_ sql VARCHAR (32000). Я изменил это на VARCHAR (2000), и предупреждение исчезло. Таким образом, похоже, что наличие переменных больше определенного размера сгенерирует это предупреждение.