我有一个现有的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表示列表的当前索引值。
但是这会添加一个完整的新行并填充未提及的列的单元格。
我想要做的是替换列中的所有数据,而不会以任何方式影响其他列。是否有一些查询可以做到这一点?
谢谢!
答案 0 :(得分:4)
毫不奇怪,调用INSERT将始终插入一个新行,因此名称。如果需要更新现有行,则需要调用UPDATE。
UPDATE table_name SET required_column=value WHERE ...
WHERE条件以某种方式标识现有行(可能通过主键)。