如果值不存在,我需要一种方法来插入一个值,如果它存在,我应该通过另一个变量增加该值。
这就是我的表格:
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)。
我发现了一个非常相似的问题,但我不明白,我如何使整数增加.. Another Question
答案 0 :(得分:4)
如果您希望每个日期只有一列,则应将其声明为UNIQUE,或者甚至将其声明为表的PRIMARY KEY。
如果这样做,那么您可以将Quantity列声明为INTEGER NOT NULL DEFAULT 0.您的表将被定义为:
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))