将行数传递到Oracle的一列中
将行数传递到Oracle的一列中
这个问题已经在下面有答案了:
我有一张表格没有ID。因此,我想添加一个新列,该列是总行数的1。我在表格中打开了一个新列,但我不知道如何用行数填充它。我在网上搜索了一下,但我找不到解决我的问题的解决方案。你能告诉我怎么做吗?先感谢您。
admin 更改状态以发布 2023年5月19日
最简单的解决方案是
update your_table set id = rownum;
然而,这对未来插入到该表中的数据无法起到帮助。如果这是即将发生的事情,请建立一个序列。
SQL> select max(id) from your_table; MAX(ID) ---------- SQL> create sequence your_table_seq; Sequence created. SQL> update your_table 2 set id = your_table_seq.nextval; 30 rows updated. SQL> select max(id) from your_table; MAX(ID) ---------- 30 SQL> select id from your_table; ID ---------- 1 2 3 .... 28 29 30 30 rows selected. SQL>
顺便说一句,现在您已经添加了一个ID列并填充了它,请确保将其强制为主键:
alter table your_table add constraint your_table_pk primary key (id);