如何在INSERT中进行SELECT?

时间:2009-11-04 23:24:29

标签: .net sqlite

我想做这样的事情

INSERT INTO link_list(link, status, hash_type, hash_id)
VALUES(@link, @status, @hash_type, @hash_id);
INSERT INTO active_dl(fileId, orderNo)
VALUES(last_insert_rowid(), SELECT COUNT(*) FROM active_dl);

但显然这是错误的,并且选择时出现语法错误。我怎么写这个?使用sqlite。

4 个答案:

答案 0 :(得分:1)

将SELECT查询放在括号括号中。

像这样:

INSERT INTO active_dl(fileId, orderNo)
VALUES(last_insert_rowid(), (SELECT COUNT(*) FROM active_dl));

答案 1 :(得分:0)

你为什么不试试:

DECLARE @var INT
SET @var = (Select Count(*) from active_dl)

INSERT INTO active_dl(fileId, orderNo)
VALUES(last_insert_rowid(), @var);

答案 2 :(得分:0)

你有没有尝试过:

...
VALUES(last_insert_rowid(), (SELECT COUNT(*) FROM active_dl)); <--- with parens

我不认为知道sqlite,但也许这可以帮助

答案 3 :(得分:0)

我相信标准SQL允许您使用 <{em> valuesselect作为insert,所以我会关注:

insert into active_dl(fileId, orderNo)
    select last_insert_rowid(), COUNT(*) FROM active_dl;

SQLite是否允许这样做我不确定,因此社区维基。