[英]How to update oracle list column with sequence number
嗨,我有这样的 oracle 数据表
seq_no | 姓名 | 地方 |
---|---|---|
1 | 日安 | 我们 |
1 | 莫里 | 我们 |
1 | 莫利纳 | 我们 |
我想自动更新 seq_no 是这样的
seq_no | 姓名 | 地方 |
---|---|---|
1 | 日安 | 我们 |
2 | 莫里 | 我们 |
3 | 莫利纳 | 我们 |
如果你有一张桌子:
CREATE TABLE table_name (seq_no, name, place) AS
SELECT 1, 'Rian', 'Us' FROM DUAL UNION ALL
SELECT 1, 'Moli', 'Us' FROM DUAL UNION ALL
SELECT 1, 'Molina', 'Us' FROM DUAL;
和一个序列:
CREATE SEQUENCE your_sequence;
然后,您可以使用以下方法将现有行更新为序列值:
UPDATE table_name
SET seq_no = your_sequence.NEXTVAL;
然后该表将包含:
序列号 姓名 地方 1 日安 我们 2 莫里 我们 3 莫利纳 我们
然后当你想INSERT
更多行时,你可以使用:
INSERT INTO table_name (seq_no, name, place)
VALUES (your_sequence.NEXTVAL, 'New Name', 'New Place');
和行:
序列号 姓名 地方 4 新名字 新地方
将添加下一个序列号。
或者,您可以编写触发器来获取下一个序列号,或者从 Oracle 12 中使用IDENTITY
列。
db<> 在这里摆弄
“自动”是什么意思?
您可以创建表,以便SEQ_NO
由数据库触发器自动填充(在 11g 上不能使用标识列)。
或者,如果您想更新表,一个简单的选项是
update your_table set seq_no = rownum;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.