【发布时间】:2011-03-29 21:25:25
【问题描述】:
我有一个应用程序,根据添加或更新的交易类型,票号可能会增加也可能不会增加。我不能将 SERIAL 数据类型用于票号,因为无论交易类型如何,它都会递增,因此我将票号定义为 INT。因此,在多用户环境中,如果用户 A 正在添加或更新交易并且用户 B 也在做同样的事情,我会测试 tran 类型,如果需要下一个票号,那么
LET ticket = (SELECT MAX(ticket) [WITH ADDLOCK or UPDLOCK?] FROM transactions) + 1
但是,这必须在行被提交或麻烦开始时准确地完成。你能想出更好的方法来做到这一点:Informix、Oracle、MySQL、SQL-Server、4Js/Genero 或其他 RDBMS?这是决定我将在哪个 RDBMS 中重写我的应用程序的主要因素之一。
【问题讨论】:
标签: mysql sql-server database oracle informix