填写单列值的SQL查询
我有一个现成的SQL数据库表,通过pyodbc与之交互。我写了一个类,利用pyodbc来和数据库进行交互,主要是读取数据、创建和删除列。现在我需要的最后一个功能是,能够把一个新创建的列(默认里面全是NULL)用一个Python列表中的值填充(我打算遍历这个列表,然后用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代表列表中当前的索引值。
但是这样做会添加一整行,并且把其他未提到的列的单元格填充为NULL。
我想要做的是替换某一列中的所有数据,而不影响其他列。有没有什么查询可以做到这一点?
谢谢!
1 个回答
4
这并不奇怪,使用INSERT命令时总是会插入一行新的数据,这也是它名字的由来。如果你想要修改已经存在的数据行,就需要使用UPDATE命令。
UPDATE table_name SET required_column=value WHERE ...
在这里,WHERE条件是用来确定你要修改的那一行数据的,通常是通过主键来识别。