作者:李容怡姿齐芷全 | 来源:互联网 | 2023-05-19 18:15
我需要一种方法来插入值(如果该值不存在),并且如果确实存在,则应该通过另一个变量来增加该值。
这是我的桌子的样子:
CREATE TABLE IF NOT EXISTS table(
Id INTEGER PRIMARY KEY,
Date TEXT,
Quantity INTEGER
每当我向数据库添加日期时,要添加一个我想要的数量,就将该数量添加到表中的“数量”中。因此,每个“日期”将仅分配1个“数量”。
只是一个小例子:
INSERT INTO Table (Date, Quantity) VALUES('%s', Quantity+%s)) % ('12/5/2013', 20);
如果已经有一个看起来像('12 / 5/2013',5)的记录,它将改为('12 / 5/2013',25)。
我发现1非常类似的问题,但我不明白,我怎么也使整数增加..
另一个问题
1> 小智..:
如果您希望每个日期只有一列,则应将其声明为UNIQUE,甚至声明为表的PRIMARY KEY。
如果这样做,则可以将“数量”列声明为INTEGER NOT NULL DEFAULT0。然后将表定义为:
CREATE TABLE IF NOT EXISTS table (
Date TEXT PRIMARY KEY,
Quantity INTEGER NOT NULL DEFAULT 0
);
然后,当您想添加到特定日期时,运行:
# assuming 'db' is your sqlite3 database
date_to_insert = '12/5/2013'
amount_to_add = 20
db.execute('INSERT OR IGNORE INTO table(Date) VALUES(?)', (date_to_insert,))
db.execute('UPDATE table SET Quantity = Quantity + ? WHERE Date = ?', (amount_to_add, date_to_insert))