如果不存在则 SQLite 插入,否则增加整数值
SQLite insert if not exist else increase integer value
我需要一种方法来插入一个值,如果该值不存在,如果存在,它应该将该值增加另一个变量。
这是我的 table 的样子:
CREATE TABLE IF NOT EXISTS table(
Id INTEGER PRIMARY KEY,
Date TEXT,
Quantity INTEGER
每当我向数据库添加一个日期,并添加我想要的数量时,将数量添加到 table 中的 "quantity"。所以每个 "Date" 只会分配 1 "Quantity"。
举个小例子:
INSERT INTO Table (Date, Quantity) VALUES('%s', Quantity+%s)) % ('12/5/2013', 20);
如果已经有类似 ('12/5/2013', 5) 的记录
而是 ('12/5/2013', 25)。
我发现了 1 个非常相似的问题,但我不明白,我如何也使整数增加..
Another Question
如果您希望每个日期只有一列,那么您应该将其声明为 UNIQUE,甚至作为 table 的 PRIMARY KEY。
如果这样做,那么您可以将数量列声明为 INTEGER NOT NULL DEFAULT 0。然后您的 table 将定义为:
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))
我需要一种方法来插入一个值,如果该值不存在,如果存在,它应该将该值增加另一个变量。
这是我的 table 的样子:
CREATE TABLE IF NOT EXISTS table(
Id INTEGER PRIMARY KEY,
Date TEXT,
Quantity INTEGER
每当我向数据库添加一个日期,并添加我想要的数量时,将数量添加到 table 中的 "quantity"。所以每个 "Date" 只会分配 1 "Quantity"。
举个小例子:
INSERT INTO Table (Date, Quantity) VALUES('%s', Quantity+%s)) % ('12/5/2013', 20);
如果已经有类似 ('12/5/2013', 5) 的记录 而是 ('12/5/2013', 25)。
我发现了 1 个非常相似的问题,但我不明白,我如何也使整数增加.. Another Question
如果您希望每个日期只有一列,那么您应该将其声明为 UNIQUE,甚至作为 table 的 PRIMARY KEY。
如果这样做,那么您可以将数量列声明为 INTEGER NOT NULL DEFAULT 0。然后您的 table 将定义为:
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))