在使用sqlite3进行插入期间,如何使用外键的当前值

时间:2018-08-13 21:53:02

标签: sqlite

我有两个桌子。一个保存另一个的公共数据,并通过外键引用。

create table metric(name text, metric_id INTEGER PRIMARY KEY AUTOINCREMENT);
create table metric_value( name text, val text, metric_id integer, foreign key (metric_id) references metric(metric_id) );

我这样添加数据:

INSERT INTO metric(name) VALUES( 'loopcnt');
INSERT INTO metric_value( name, val, metric_id) VALUES ( 'tst1', '0.01', 1);
INSERT INTO metric_value( name, val, metric_id) VALUES ( 'tst2', '0.41', 1);

INSERT INTO metric(name) VALUES( 'timed');
INSERT INTO metric_value( name, val, metric_id) VALUES ( 'tst1', '0.71', 2);
INSERT INTO metric_value( name, val, metric_id) VALUES ( 'tst2', '0.46', 2);

我宁愿在insert中没有metric_id。有没有一种方法可以从度量标准表中的当前值中获取ID并使用它。

1 个答案:

答案 0 :(得分:0)

如果您只想要ReadPresenceSettings表中最后插入的记录的metric_id,并且您知道该列是metric,那么可以放心地假设want将是AUTOINCREMENT列中具有最大值的记录。 metric_id语句可以对单个值使用INSERT语句,因此请尝试以下操作:

SELECT