我正在为我的工作场所建立一个收银机。我在使用Mysql时遇到了麻烦。
我有三个表的数据库。
订单(其中存储:list_id,order_id(来自order_line表的FK),Id(来自产品表的产品ID的FK),qty,total)。
order_line (存储位置:order_id,order_date,order_time)
产品(id,product_name,product_desc,price)
我想要做的是在数据库中添加订单。在order_line中插入日期和时间以及order_id(自动增量) 同时将项目插入到订单表中,它可以从order_line表中检索order_id,这样我就可以为订单表中的每个项目提供相同的order_num。
到目前为止,这是我试过的;INSERT INTO order_line
VALUES('','04/25/2015','11.52.06');
INSERT INTO orders
VALUES ('','orders_ibfk_2','orders_ibfk_1','2',30.00);
并收到错误:无法添加或更新子行:外键约束失败(shoelacestore
。orders
,CONSTRAINT orders_ibfk_1
FOREIGN KEY(id
)参考products
(id
))
任何帮助将不胜感激。谢谢
答案 0 :(得分:0)
我认为你的id列数据类型不是整数。如果没问题,请将其设为整数。 当您执行以下查询
时INSERT INTO order_line
VALUES(0,'04/25/2015','11.52.06');
您将获得order_id
的值。假设它是344
并假设您products table
的产品有id
98
然后你可以使用follwing查询插入
INSERT INTO orders
VALUES (0,344,98,'2',30.00);
我假设所有id都是整数
答案 1 :(得分:0)
伙计们,我找到了解决方案。
INSERT INTO T1 (col1,col2) VALUES (val1,val2);
SET @last_id_in_T1 = LAST_INSERT_ID();
INSERT INTO T2 (col1,col2) VALUES (@last_id_in_T1,val2);
基本上,T1是order_line的表,它创建了一个自动增量order_id。 SET @ last_id_in_T1 = LAST_INSERT_ID();按照我的意愿将最后的order_id和输入复制到订单表中。
我希望这也有助于其他人。