我有一个包含 2 列的简单数据库表,第一个是灯泡 id
,第二个是整数 status
(0/1),表示灯是否亮起是否开启。默认情况下,我所有的灯开关都被假定为关闭。灯泡的数量是固定的,我只需要更改每一行的 id 即可。
这是我的表格:
cursor.execute(
'''
CREATE TABLE IF NOT EXISTS info(
id integer,
status integer
)
'''
)
与如下所示手动列出每一行相比,初始化表的更好方法是什么? (我知道灯的数量固定为 10)。
c.execute('INSERT INTO info VALUES(1,0)')
c.execute('INSERT INTO info VALUES(2,0)')
c.execute('INSERT INTO info VALUES(3,0)')
....
....
c.execute('INSERT INTO info VALUES(10,0)')
最佳答案
而不是这个create
语句:
CREATE TABLE IF NOT EXISTS info(
id integer,
status integer
)
因为您希望 id
具有值 1-10
,所以将 id
主键
(所以它将是从 1
开始的自动递增
),列状态的默认值为 0
:
CREATE TABLE IF NOT EXISTS info(
id integer primary key,
status integer default 0
)
现在,当您想要插入新行时,您所要做的就是执行以下语句:
insert into info default values;
这将插入带有下一个 id
的行(对于新表,id
将从 1 开始)和 status
= 0
。
因此使用循环插入 10 行:
for i in range(1, 11):
c.execute('insert into info default values')
关于python - 初始化 SQLite3 数据库的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57129958/