【发布时间】:2016-05-30 04:00:47
【问题描述】:
。
我正在为我大学的最后一年项目创建一个数据库,但我目前陷入困境。
我有三个表:product、customer 和 product_order。
product 有一个 auto_incremented 主键 product_ID
而customer 也有一个自动递增的主键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 变量只返回一次。
所以我的问题是:有更好的方法吗?
顺便说一句,这是用于客户登录网页,因此客户不必输入唯一的主键。
【问题讨论】: