数据库关系并插入一行

时间:2015-04-28 04:14:18

标签: mysql insert

我正在为我的工作场所建立一个收银机。我在使用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);

并收到错误:无法添加或更新子行:外键约束失败(shoelacestoreorders,CONSTRAINT orders_ibfk_1 FOREIGN KEY(id)参考productsid))

任何帮助将不胜感激。谢谢

2 个答案:

答案 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和输入复制到订单表中。

我希望这也有助于其他人。