获取AUTO INCREMENTED行并将其插入到关联表中?

时间:2017-10-24 17:55:27

标签: java mysql insert auto-increment associative-table

我有两个输入:

Basket Name:  <input type="text">

Fruits<select name="fruits">
   // Some java code that populate my drop down list from a SELECT sql 
   // that is pulling from my database table called 'Fruits'
   // i.e. <option value='SELECT fruitID FROM fruits'> 'SELECT fruitName FROM fruits' </option>    
   ...
  </select>

我希望在提交<form>时同时执行以下两个SQL插入:

SQL 1 :将'Basket Name'插入名为'Baskets'的表格中;

SQL 2 :将'fruitID'(即<option value = "01"> Apple </option>)插入名为'Baskets_Fruits'的关联表

我的桌子结构:

BASKETS 表:

basketID - &gt; AUTO_INCREMENT int(11),NOT NULL

basketName - &gt; VARCHAR(255)

BASKETS_FRUITS 表格:

basketID_FK - &gt; &lt; basketID&#39;的外键来自Baskets表

fruitID_FK - &gt; “水果ID”的外键&#39;来自水果桌

FRUITS 表:

fruitID_FK - &gt; AUTO_INCREMENT int(11),NOT NULL

fruitName - &gt; VARCHAR(255)

如果引用的basketID_FK 自动增加,我如何获得当前basketID?我不太确定如何编写SQL语法来获取AUTO-INCREMENTED列的值。

修改

我是否会这样做:

INSERT INTO baskets_fruits (basketID_FK, fruitIDFK)
(SELECT baskets.basketID, fruits.fruitID FROM baskets, fruits
WHERE baskets.basketID = "Foo" AND fruits.fruitID = "BAR");

但是"Foo""Bar"语法会是什么样的?

1 个答案:

答案 0 :(得分:0)

这样的事情会起作用吗?这显然是在插入之后,然后你可以操纵你想要的任何东西。

SELECT * FROM BASKETS
INNER JOIN BASKETS_FRUITS ON basketID = basketID_FK
WHERE basketName = 'whatever the basket name is'

这会根据特定的basketName为您提供密钥,然后您可以根据需要找到fruitID_FK。