2013-02-15 99 views
0

请让我知道如何在单个查询中插入一对多关系。 我有表A(aId,姓,名)表B(bId,街道,pincode,aId)使用SQL插入一对多关系

+0

这看起来很可能需要一些特殊的SQL。你使用的是什么RDBMS? MySQL,PostgreSQL,SQL Server,Oracle?你知道你需要支持哪些版本? – 2013-02-15 01:30:44

+0

我正在使用SQLite DB个人版3.4 – user1925819 2013-02-15 01:38:01

回答

2

你不知道。这就是为什么transactions存在。您开始一个交易,提交所有查询,然后提交交易。数据库从没有任何查询完成的状态转到完成所有查询的状态。国家之间没有任何担心。交易是RDBMS如何实现ACIDAtomicity组件。

+0

是否有可能如果我尝试像插入TableB值('','','从表a援助= 2'选择援助) – user1925819 2013-02-15 01:45:20

+0

如果你知道援助是2,你wouldn不需要进行有问题的查询。我对SQLite本人不熟悉,但在其他RDBMS中,您可以执行如下操作: INSERT INTO TableB(a,b,c,d) SELECT 1 AS a,2 AS b,'Something AS c,AID as d FROM TableA WHERE somecondition = 1; – 2013-02-15 01:51:22

+0

我认为这不会起作用。通常,如果你想在'INSERT'中使用'SELECT'语句,你可以使用[defined](http://www.sqlite.org/lang_insert.html)方法:'INSERT INTO TableA(Id,...) SELECT X,Y,Z,... FROM TableB' – 2013-02-15 01:51:39