我有三個數據表,tableA
,tableB
和tableAB
。內容並不重要,只有tableA
和tableB
有主鍵,tableAB
與兩個表中的鍵相關。其基本結構如下:
選擇從插入到
aId|data
---+----
1 |4
2 |83
bId|data
---+----
1 |a
2 |cd
3 |bf
abId|aId|bId
----+---+---
1 |1 |1
2 |1 |2
3 |2 |3
我希望做的是所有這三個表的插入合併成一個查詢,但我不知道怎麼樣。目前我正在使用的想法在下面,但它不起作用。需要注意的重要事項是aId
可能涉及多個bId
's,但每個bId
將只有一個aId
引用它。因此,aId
可能不是指現有的bId
's。我正在努力的大事情是:1)使insert
的值來自另一個insert
,並且2)在單個查詢中模擬多個插入,對於bId
的模擬。
目前查詢:
insert into tableAB(aId, bId)
values((select aId from(insert into tableA(data) values(5))),
(select bId from(insert into tableB(data) values("f"))));
我真的不是在單個查詢確定多個插入是可能的,不知道上面寫着它的一種方式。
MySQL不支持在單個查詢中插入多表。 :( – Sevle
你可以在Postgres中做你想做的事情,但是MySQL不支持在單個查詢中插入多個表。 –
有一個LAST_INSERT_ID,參見[manual](http://dev.mysql.com/doc/) refman/5.7/en/information-functions.html#function_last-insert-id),樣本:http://www.sqlfiddle.com/#!9/a8102/1/0 –