如何组合两个SQL数据库查询

如何组合两个SQL数据库查询,sql,sqlite,Sql,Sqlite,我有两个SQLite数据库query插入UserAccessLevels值(12,“a”,21,“bb”,21)和插入UserPersonalInfo值(17,“a”,“a1”,2,“a2”,“a3”)其中两个分别工作正常。我想把它们结合在一起,这对SQL数据库来说是可能的 简短回答:使用事务确保两个插入都作为一个原子单元发生(整个事务要么完全成功,要么完全失败) 如果您使用的是SQLite,则示例事务如下所示: BEGIN; INSERT INTO UserAccessLevels VALUE

我有两个
SQLite数据库
query
插入UserAccessLevels值(12,“a”,21,“bb”,21)
插入UserPersonalInfo值(17,“a”,“a1”,2,“a2”,“a3”)
其中两个分别工作正常。我想把它们结合在一起,这对SQL数据库来说是可能的

简短回答:使用事务确保两个插入都作为一个原子单元发生(整个事务要么完全成功,要么完全失败)

如果您使用的是SQLite,则示例事务如下所示:

BEGIN;
INSERT INTO UserAccessLevels VALUES (12,"a", 21, "bb", 21);
INSERT INTO UserPersonalInfo VALUES (17, "a","a1",2,"a2","a3");
COMMIT;
如果要提交所有这些内容的单个字符串以供执行,则分号至关重要


如果您实际上不需要事务,或者已经为您创建了一个事务(由SQLItemManager等创建),那么只需在每个事务之后运行带有分号的
INSERT
语句,就可以排除
BEGIN
COMMIT
语句。

通常
用于删除查询,但实际上并非如此
INSERT
通常只对一个表有效,尽管有些数据库确实有将它们组合到单个查询中的方法。哦。没有办法把它们结合在一起。我想我必须一个接一个地运行多个查询..这取决于您使用的SQL server以及在同一SQL语句中允许多个查询的设置。如果服务器允许,并且您启用了多条语句,则通常使用分号分隔这两条语句。这是一种安全风险,因此它通常在默认情况下被禁用或根本不允许;[无法在事务中启动事务]错误………SQLItemManager是否有自己的应用程序和GUI?它似乎已经在事务中包装了所有内容,因此尝试启动另一个事务是行不通的。您是否尝试过只运行两个INSERT语句,每个语句的末尾都有分号?如果有效,我将更新我的答案以删除事务内容。我在..中找到了解决方案。。已经有了。我想下一次我必须更加关注谷歌搜索我得到
SQLiteManager:可能的SQL语法错误:开始插入UserAccessLevels值(12,“a”,21,“bb”,21)插入UserPersonalInfo值(17,“a”,“a1”,2,“a2”,“a3”)结束[接近“INSERT”:语法错误]
尝试解释您的查询应该做什么。
BEGIN
INSERT INTO UserAccessLevels VALUES (12,"a", 21, "bb", 21)
INSERT INTO UserPersonalInfo VALUES (17, "a","a1",2,"a2","a3")
END