如何使用准备好的语句将可变数量的值插入 SQLite 中的 table
How to insert variable number of values into a table in SQLite using prepared statement
table X 有三列(a、b、c),其中一列的默认值为 0。有时我只获取其他两列的值。有时我会得到所有三列的值。 INSERT INTO X (a,b) VALUES (?,?)
或 INSERT INTO X (a,b,c) VALUES (?,?,?)
。有什么办法让它成为一个单一的声明吗?
当您只想为 a
和 b
指定值时,使用三列插入查询并简单地将 None
绑定为 c
参数:
params = (a, b, None,)
db.execute('INSERT INTO X (a,b,c) VALUES (?,?,?)', params)
明确地说,以下两个插入应该具有相同的行为:
INSERT INTO X (a, b, c) VALUES (?, ?, NULL);
INSERT INTO X (a, b) VALUES (?, ?);
假设我们将相同的值绑定到上述每个查询中的前两个 ?
占位符。
table X 有三列(a、b、c),其中一列的默认值为 0。有时我只获取其他两列的值。有时我会得到所有三列的值。 INSERT INTO X (a,b) VALUES (?,?)
或 INSERT INTO X (a,b,c) VALUES (?,?,?)
。有什么办法让它成为一个单一的声明吗?
当您只想为 a
和 b
指定值时,使用三列插入查询并简单地将 None
绑定为 c
参数:
params = (a, b, None,)
db.execute('INSERT INTO X (a,b,c) VALUES (?,?,?)', params)
明确地说,以下两个插入应该具有相同的行为:
INSERT INTO X (a, b, c) VALUES (?, ?, NULL);
INSERT INTO X (a, b) VALUES (?, ?);
假设我们将相同的值绑定到上述每个查询中的前两个 ?
占位符。