【问题标题】:TSQL Rows Increase After Each Column Insert每列插入后 TSQL 行增加
【发布时间】:2021-12-14 17:23:50
【问题描述】:

我正在向 TSQL 表中插入数据。但是,我的行在每列插入后都会增加。因此,在 A 列中插入 3 个值,在 B 列中插入 3 个值后,我的表中最终有 6 行。它应该只有 3 行和 2 列。我所有的列都有相同的长度,但在将它们插入表后,我最终得到 3 x 2 = 6 行。

# python
for i in ColA:
    cur.execute("""
                INSERT INTO TAB(ColA) VALUES (?) """, i)
    cur.commit()

for i in ColB:
    cur.execute("""
                INSERT INTO TAB(ColB) VALUES (?) """, i)
    cur.commit()

当我在 SQL Server 中检查数据时,我最终得到 6 行和 2 列:

| ColA | ColB |
|-------------|
|  9   | Null |
|  7   | Null |
|  2   | Null |
| Null |   2  |
| Null |   6  |
| Null |   3  |

【问题讨论】:

  • 然后您需要更改您的插入语句以包括两列。或者将第二部分更改为更新。
  • 基于这个和你之前的问题,无意冒犯,但我认为你需要花一些时间在一些基本的 SQL 教程上学习插入和更新的工作原理。

标签: python sql-server


【解决方案1】:

您需要将两个集合组合在一起(可能使用 Python 中的 zip 函数),然后遍历结果以生成插入,同时将两个列值插入为
肖恩·兰格建议。

类似:

for tuple in zip(ColA, ColB):
    cur.execute("""
            INSERT INTO TAB(ColA, ColB) VALUES (?, ?) """, tuple[0], tuple[1])
    cur.commit()

(未经测试,因为我不是 Python 程序员。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-21
    • 2011-05-31
    相关资源
    最近更新 更多