【发布时间】:2017-01-09 03:29:05
【问题描述】:
我已经在其他地方寻找答案here,但还没有完全找到我需要知道的内容。
我有 3 个表,Order_Details、Products_Ordered 和 Product_Details。前两个用于主详细信息表单以显示订单和一起订购的项目。 Products_Ordered 表有一个由两个外键组成的复合主键,第一个是 Order_Details 表中的主键,第二个是 Product_Details 表中的主键。它们共同确保一种产品只能添加到订单中一次。如果有人想订购多个产品,则可以更改记录中的数量字段以反映这一点。到目前为止,一切似乎都很好。
我的问题是,在主详细信息表单中将产品添加到订单时,我使用了值的下拉列表来选择要添加到订单的产品。它的显示值是产品名称,它的返回值是 Product_Details 表中产品的主键。
我喜欢这样,因为用户更容易选择产品并将其数量添加到表中。除了一种情况外,它对插入和更新操作都适用。
如果用户在行中选择相同的产品,然后向数据库提交表,然后尝试将产品添加到订单中两次,抛出“ORA-00001:违反唯一约束”。错误。显然这是因为表的主键中使用了产品 ID。
我不想让用户像那样向表中添加两条记录,而是希望强制他们相应地更改数量字段。出现的错误消息对用户不是很友好,所以我的问题是如何检测此错误并显示一个对用户更友好的错误,而不是告诉他们更改数量字段?
*如果这不可能,那么有没有办法可以从下表行中的值下拉列表中隐藏任何已选择的产品?我没有对此进行过多研究,因为当用户尝试添加比下拉列表中可用的产品更多的行并且没有更多产品值要显示时,它肯定会变得复杂吗?
我对此很陌生,所以请善待。非常感谢任何帮助:D
【问题讨论】:
标签: oracle oracle-apex