我想这比我上一个版本更清楚:
我有一个表已经有一个以1开头的主键字段,该字段已经设置为自动递增。我想添加一个不以1开头的新字段,而是以任意数字(如发票号)开头,并自动递增。显然,每个表只能有一个具有该属性的列。在一个查询操作中,是否有一种方法迫使MySQL将字段的最后(或最大)值增加1,作为新行中的COL的值?
更新:我刚刚使用id列作为所需新值的基础,并删除了非必需列。我的问题从来没有得到答案,真的,但我确实把这当作一个提示,重新思考的方法,所以谢谢!
最佳答案
这并不能真正回答您的特定问题(因为您询问如何在一个SQL语句中实现您的目标),但是您可以在表上定义一个触发器,通过调用序列生成函数来填充第二列。这将确保此列的值是真正唯一的(如果正在执行max(value)或类似操作,则情况并非如此),因为对该函数的调用将排队。
或者,如果确实需要两列显示相同的值,请创建一个视图,该视图以不同的别名引用同一列两次。