SQLite: INSERT INTO 列插入在前一列底部

0 投票
1 回答
549 浏览
提问于 2025-04-28 04:40

大多数关于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

撰写回答