什么是mysql中自定义类型的替代品

时间:2016-09-11 18:33:49

标签: mysql sql database stored-procedures database-design

在sql server中,很容易将数据作为自定义类型传递给sql server,然后迭代它并执行操作。但在mysql中,如果我有1个订单,其中包含许多库存,就像我的订单方案是

order (id,customer_name,phone,address,total,created_date)
orderdetails(id,order_id,inventory_id,quantity,amount,created_date)

所以,当我要制作存储过程我该怎么办时,我可以在1个订单中有很多库存。

2 个答案:

答案 0 :(得分:1)

除了做一系列调用之外,我知道除了另一个之外,可能在一个事务中添加一个order_detail。

在java中,使用jdbc,可以在批处理语句中执行此操作,从而节省一些到数据库的往返。

答案 1 :(得分:1)

您的问题未提及PHP或任何其他语言。

所以在纯MySQL中(对于事件处理或任何语言调用的能力本身就是这样)...你用一个代表order.id的参数调用一个存储过程。

现在,在Stored Proc中,您可以找到一种智能的快速方法来处理SQL orderdetails在SQL集和关系中的order.id。这应该是目标。

或者(读:你是SQL的新手,或者它太棘手了)你为慢速路径摆动并创建一个MySQL CURSOR来迭代(获取)下一行并在你处理的处理循环中与那些orderdetails.

MySQL Cursor以简单的SELECT语句开始生命。

如果我在存储过程中看到CURSOR,它总是会引发一个红旗。但有时你似乎必须这样做。仅仅因为CURSOR可以完成工作并不意味着你应该以自己为荣。它可能比设置和关系慢50倍。

因此不需要自定义类型(问题的标题)。