【发布时间】:2018-12-20 16:24:33
【问题描述】:
import mysql.connector
connection = mysql.connector.connect(user="REMOVED",
password="REMOVED",
host="REMOVED",
database="REMOVED")
cur = connection.cursor()
# Latitude - remove letter A
cur.execute("UPDATE tau._inm_exportados_test_csv SET latitud = REPLACE (latitud, 'a=','');")
print("Latitude change remove letter A - executed!")
# Longitude - remove letter A
cur.execute("UPDATE tau._inm_exportados_test_csv SET longitud = REPLACE (longitud, 'a=','');")
print("Longitude change remove letter A - executed!")
# Latitude - MODIFY COLUMN
cur.execute("ALTER TABLE tau._inm_exportados_test_csv MODIFY COLUMN latitud DECIMAL(10,6);")
print("Latitude - MODIFY COLUMN - executed!")
# Longitude - MODIFY COLUMN
cur.execute("ALTER TABLE tau._inm_exportados_test_csv MODIFY COLUMN longitud DECIMAL(10,6);")
print("Longitude - MODIFY COLUMN - executed!")
# Post Code data type change
cur.execute("ALTER TABLE tau._inm_exportados_test_csv MODIFY COLUMN codigo_postal varchar(255);)")
print("Post Code data type change to varchar(255) - executed!")
connection.commit()
cur.close()
connection.close()
我试图让这个简单的语句列表工作但没有成功。更令人困惑的是,前四个语句有效,而最后一个即使我注释掉其余语句也不起作用!最后的语句得到以下响应:
mysql.connector.errors.InterfaceError:执行多条语句时使用multi=True
codigo_postal 的数据类型是 int(11),而纬度和经度是 varchar。
我尝试过创建新连接、新游标、新连接和游标。我尝试添加 multi="True" 并将语句组合到一个操作中。我尝试将 multi="True" 添加到每个 cur.execute() 作为第二个和第三个参数。我已在 Workbench 中运行该语句,以确保该语句有效且有效。
虽然在这里没有成功......
【问题讨论】:
-
它的 multi=True 不是 multi="True"
-
我的描述有误。我确实写了它的 multi=True 而不是 multi="True"。我刚刚注意到实际上有一个错字 - 在最后陈述的末尾有一个不需要的括号!我刚刚重新运行代码并且它正在工作。感谢您的意见。