来自两个外键的MYSQL auto_increment insert语句

时间:2016-05-30 04:00:48

标签: mysql database tomcat

。 我在我的大学为我的最后一年项目建立了一个数据库,而且我目前卡住了。 我有三个表:productcustomerproduct_order

product有一个auto_incremented主键product_ID 并且customer还有一个auto_incremented主键customer_ID

product_order表是我的问题所在(我知道mysql不支持@insert和@scope_identity,同时@last_insert_id也不适合我)

我在这里有两个外键来自产品和客户表(这是auto_increment id并使用我在网上看到的变量

SELECT @last := LAST_INSERT_ID();

仅返回product_ID和customer_ID的最后一个ID。

我有这些插入语句:

insert into Product values(1000 ,'Logitech Webcam C270 HD mic USB', 260, 5, 'Accessory');

insert into customer VALUES(2000, 'Rachel ' , 'Mc Roy' , 'Rach@gmail.com', 'female','1985/06/05','wlovely8', '41, Cantubury Lane, San Franscique', 2938493);

insert into product_order values(@last_id_in_Customer,  @last_id_in_Product,  'Logitech Webcam C270 HD mic USB',   260, 1);
  • 我正在插入ID来设置我希望id落入的范围;因此我把2000和1000的原因;在其他插入中,我使用null将数据自动插入表中

    select * from product_order;

    2001 2001 Logitech Webcam C270 HD mic USB 260 1

我的查询输出只会插入一次,因为@last变量只返回一次。

所以我的问题是:有更好的方法吗?

这是针对客户登录网页的,因此客户不必输入唯一的主键。

1 个答案:

答案 0 :(得分:0)

是的,有更好的方法这样做假设当客户注册时,他将获得customer_id自动递增,当客户在会话变量中登录系统存储时以及每当他选择任何产品时,从会话中检索customer_id和产品表中的product_id并将其添加到order_product表