用于使用值填充SINGLE列的SQL查询

时间:2014-08-01 09:05:38

标签: python sql sql-server pyodbc

我有一个现有的SQL数据库表我正在通过pyodbc进行交互。我编写了一个类,它使用pyodbc通过执行读取,创建和删除列来与数据库进行交互。我需要的最后一点功能是能够使用python列表中的值填充创建的列(默认情况下为NULL)(我计划迭代然后使用db.commit()完成) - 没有效果在其他列上或添加额外的行。

我在for循环中尝试了以下查询迭代;

 INSERT INTO table_name (required_column) VALUES (value)

因此类方法;

    def writeToColumn(self, columnName, tableName, writeData):
    for item in writeData:
        self.cursor.execute('INSERT INTO ' + tableName + '(' + columnName + ') VALUES (' + item + ')')

    self.cursor.commit()

其中value表示列表的当前索引值。

但是这会添加一个完整的新行并填充未提及的列的单元格。

我想要做的是替换列中的所有数据,而不会以任何方式影响其他列。是否有一些查询可以做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:4)

毫不奇怪,调用INSERT将始终插入一个新行,因此名称。如果需要更新现有行,则需要调用UPDATE。

UPDATE table_name SET required_column=value WHERE ...

WHERE条件以某种方式标识现有行(可能通过主键)。