SQLite: INSERT INTO 列插入在前一列底部
大多数关于SQL中INSERT INTO
语句的文档都讲的是如何在一条语句中把值一行一行地插入到多个列里。但我的工作流程有点不同,因为我表格中的列之间没有关系。我是一次性填充每一列:填完一列后,再去填下一列。
问题是,我不知道怎么控制第二列的INSERT INTO
语句的位置。它把column2
的数据加到了column1
的最后一行。我该如何重置光标的位置,以便在column2
的开头插入数据呢?
表格输出的截图: https://i.stack.imgur.com/L72Vt.jpg
代码:
conn = sqlite3.connect('testDB.sqlite')
c = conn.cursor()
c.execute('CREATE TABLE IF NOT EXISTS tableName (column1 TEXT, column2 TEXT)')
def getData():
c.execute('INSERT INTO tableName(column1) VALUES(?)', (data_values,))
c.execute('INSERT INTO tableName(column2) VALUES(?)', (data_values,))
1 个回答
1
INSERT语句是用来往表里添加一整行数据的。如果你没有提供某些列的数据,那么这些列就会插入空值(Null)。不过,这些列必须允许空值,如果不允许的话,插入操作就会出错。
举个例子,Insert into Table1(Column1) Values('Value1')
和 Insert into Table1(Column1) Values('Value2')
这两条语句会像下面这样操作(------表示空值):
Table1
Column1 Column2
Value1 ------
------ Value2
如果你想在已有的行中插入一些列的数据,你应该使用UPDATE语句。在上面的例子中,如果你用UPDATE替代第二条INSERT语句,像下面这样,它会更新同一行的数据。
update Table1 set Column2 = 'Value2' where Column1 = 'Value1'
Table1
Column1 Column2
Value1 Value2