sql - 增加变量的 PL/SQL 更新

标签 sql oracle variables plsql sql-update

我在 http://haacked.com/archive/2004/02/28/sql-auto-increment.aspx 上找到了以下方法但对 PL/SQL 没有运气。有什么想法吗?

update table    
set table.column = var1 = var1 + 1    
where table.column2 = "value';

似乎不喜欢在设置行的后半部分增加 var1

最佳答案

一点 PL/SQL 来保存原始的最大 ID。使用 ROWNUM 解决了递增计数的问题:

declare
    n pls_integer;
begin
    select max(col1)
    into n
    from your table;

    update your_table
    set col1 = n + rownum
    where col2 = 'value';
end;

这将为您提供 COL1 的唯一 ID,该 ID 不会与 COL1 与 COL2 的其他值发生冲突。

关于sql - 增加变量的 PL/SQL 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8052786/

相关文章:

mysql - 如何获取 MySQL 组中的最后一条记录

mysql - 蜘蛛 MySQL 表

sql - 在线运行oracle sql代码

页面刷新后Javascript存储变量

php - 在 null/while 更新查询上调用成员函数 bind_param()

MySQL OR 和 ISNULL 性能不佳

java - Oracle 数据更改通知超时和工作流

oracle - 获取外部表的位置和文件名?

variables - NetBeans 调试变量值

ruby - 如何清除 ruby​​ 中 rspec 测试之间的类变量