Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在sqlite的SELECT语句中使用INSERT作为子查询?_Sql_Sqlite_Select_Insert - Fatal编程技术网

如何在sqlite的SELECT语句中使用INSERT作为子查询?

如何在sqlite的SELECT语句中使用INSERT作为子查询?,sql,sqlite,select,insert,Sql,Sqlite,Select,Insert,我想要这样的东西。但是我不知道正确的语法 select id from table1 where name = (insert into table1 (name) values ('value_abcd')) 当你说: WHERE something = somethingElse somethingElse是一个表达式(something也是一个表达式,但无论如何)。您正试图使用INSERT语句作为somethingElse,但INSERT语句不返回任何内容,因此无法将其作为表达式进行计

我想要这样的东西。但是我不知道正确的语法

select id from table1
where name = (insert into table1 (name) values ('value_abcd'))
当你说:

WHERE something = somethingElse
somethingElse
是一个表达式(something也是一个表达式,但无论如何)。您正试图使用
INSERT
语句作为
somethingElse
,但
INSERT
语句不返回任何内容,因此无法将其作为表达式进行计算。因此,无论您试图使用什么语法,它都是无效的,而且以伪代码的方式也没有任何意义


如果你能更清楚地解释你想做什么(以及为什么),也许有人能给你一些建议。

所以你有一个带有自动递增主键的表,你想在插入记录后知道它的值

在SQL中,可以使用以下函数:

INSERT INTO table1(name) VALUES('value_abcd');
SELECT last_insert_rowid();
但是,在大多数情况下,您不需要执行单独的
SELECT
查询,因为大多数库都有返回该值的函数。
例如,SQLite的C API具有该函数,Android的函数直接返回ID。

如果表的
ID
列设置为identity,则在SQL中

insert into table1(name) value('name')
select SCOPE_IDENTITY()
insert into table1(name)
output inserted.id
value('name')
它将返回最后一个自动生成的idetity值

如果
id
列未设置为标识,则在SQL中

insert into table1(name) value('name')
select SCOPE_IDENTITY()
insert into table1(name)
output inserted.id
value('name')

它将返回在单个语句中插入的所有
id
值。

我先使用了两个查询1'将其插入到表1中,然后从表1中选择col1。但是我想要1个查询,而不是2..INSERT语句不会返回任何数据,因此无法将其用作子查询。你到底想干什么?我想要这样的。但是我不知道正确的语法…{从table1中选择id,其中name=(插入table1(name)值('value_abcd'));}您从哪种语言访问数据库?如果sqlight支持该函数,您可以使用触发器,比如说,我有两个表。Table2继承了Table1的外键,即(Table1->Table2)。当用户在表1中输入信息时,同时从表1中选择键(表2的外键)。如何在表2中插入数据?