python - 将行从数据库插入另一个数据库

标签 python mysql pymysql

我正在尝试使用 pymysql 将一行从数据库服务器插入到不同环境中的另一个数据库服务器

prod_conn = pymysql.connect(
        prod_common_db_endpoint,
        prod_user,
        prod_password,
        prod_common_table_name)

prod_cursor = prod_conn.cursor()


prod_ConnectFirm_table = prod_cursor.execute("select * from Common.ConnectFirm where FirmId = " + prod_source_firm + ";")
for row in prod_ConnectFirm_table:
    ConnectFirmId = int(row[1])
    ConnectFirmName = (row[2])
    FirmId = int(row[3])
    isDeleted = (row[4])
    tags = (row[5])
    createdDate = (row[6])
    createdBy = int(row[7])
    editedDate = (row[8])
    editedBy = int(row[9])


conn = pymysql.connect(target_common_db_endpoint, user, password, common_schema_name)

cursor = conn.cursor()

cursor.execute("INSERT INTO Common.ConnectFirm(ConnectFirmId, ConnectFirmName, editedDate) VALUES(" + ConnectFirmId + ", " + ConnectFirmName + ", " + editedDate + ", ")")
conn.commit()
print("error inserting")

它失败给我这个错误

Traceback (most recent call last):
  File "sql_test_3_d.py", line 109, in <module>
    for row in prod_orionConnectFirm_table:
TypeError: 'int' object is not iterable

最佳答案

prod_ConnectFirm_table 将包含执行状态,它是一个不能超过的整数值。因此在执行查询后:

prod_ConnectFirm_table = prod_cursor.execute("select * from Common.ConnectFirm where FirmId = " + prod_source_firm + ";")

您需要从光标获取数据:

data = prod_cursor.fetchall()

“data”将包含您解析的元组形式的查询结果。

关于python - 将行从数据库插入另一个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51792956/

相关文章:

MySQL - 列计数与第 1 行的值计数不匹配 - 语法显示正确

python - 如何计算衡量评估者间一致性的科恩卡帕系数? (影评)

java - NetBeans MySQL 驱动程序连接错误 dist Jar 文件

python - Numpy 会自动检测和使用 GPU 吗?

mysql - 在 Laravel 5 中调用存储过程

python - pyMySQL 设置连接字符集

python - pymysql:如何格式化查询类型?

python - 无法使用 Pymysql 插入(尽管增量 id 更改)

python - pyjade radio 输入文本未显示

Python Flask - 将服务器构建为可执行文件 (Py2exe)