Этот код работает:MySQL почему cursor.execute (sql, multi = True) не работает, но работает 2 cursor.execute (sql)?
sql = """TRUNCATE TABLE product_groups;"""
cursor.execute(sql)
sql = """INSERT INTO product_groups (origin, type, name, brand, concentration, gender)
SELECT origin, type, name, brand, concentration, gender
FROM products
GROUP BY origin, type, name, brand, concentration, gender
ORDER BY brand, name;"""
cursor.execute(sql)
cursor.close()
conn.commit()
conn.close()
этот код не работает:
sql = """TRUNCATE TABLE product_groups;
INSERT INTO product_groups (origin, type, name, brand, concentration, gender)
SELECT origin, type, name, brand, concentration, gender
FROM products
GROUP BY origin, type, name, brand, concentration, gender
ORDER BY brand, name;"""
cursor.execute(sql, multi=True)
cursor.close()
conn.commit()
conn.close()
Разница между двумя кодами является только cursor.execute(). В первом коде у нас есть 2 cursor.execute (sql). Во втором коде мы имеем 1 cursor.execute (sql, multi = True) с 2 операторами SQL.
Оба кода не порождают ошибок, но второй код не вставляет строки.
Почему только первый код работает?
https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-execute.html –