当前位置: 首页 > 知识库问答 >
问题:

将行计数传递给Oracle中的列[重复]

吕宸
2023-03-14

我有一个没有ID的表。所以我想添加一个新列,该列的总行数为1。我在表中打开了一个新列,但我不知道如何用行数填充它。我在网上搜索,但找不到解决问题的方法。你能告诉我怎么做吗?提前谢谢。

共有2个答案

太叔岳
2023-03-14

最简单的解决办法就是

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);
籍昱
2023-03-14

您可以这样做(适用于12c或更高版本):

alter table your_table add id number generated always as identity;

不过,这也会为列生成新值,以便将来插入。

另外关于总行数,这应该几乎总是生成从1到“总行数”的值,但无论如何(不知道确切,当这可能工作不正确时),对于检查这个,在之后改变你可以做:从your_table中选择count(*),max(id)。值应该匹配在一起。

 类似资料:
  • 问题内容: 我想将两个数组形式的java发送到oracle存储过程。第一个数组是字符串数组,第二个是字符数组,我怎样才能做到这一点? 问题答案: 这是一个如何做的例子。 以下脚本在数据库中设置表,类型和存储过程。该过程采用数组类型的参数,并将数组的每一行插入表中: 然后,Java代码演示如何将数组传递到此存储过程中: 如果先运行SQL脚本,然后运行Java类,然后查询表,则应该发现所有数据都已插入

  • 问题内容: 这个问题已经在这里有了答案 : PHP-将PDO与IN子句数组一起使用 (8个答案) 5年前关闭。 我目前有一个值数组(business_id) 可以说 使用这些值中的每一个从数据库中获取每个business_id的关联行信息的最佳方法是什么。 可以一一查询是我的问题。显然,你可以做 问题答案: 通常的SQL注入警告仍然适用,您可能需要先循环遍历id以进行验证或转义。另外,如果希望使用

  • 问题内容: 我想按值将列表传递给函数。默认情况下,列表和其他复杂对象通过引用传递给函数。这是一些目标: 可以写得短些吗?换句话说,我不想更改 ad 。 问题答案: 您可以使用,但是对于包含列表(或其他可变对象)的列表,您应该使用: 等价于或,并返回列表的浅表副本。 何时使用:

  • 是否有方法在package.json命令内传递参数? cli 然后在上,我想用获取参数

  • 问题内容: 这个问题已经在这里有了答案 : 如何将变量和数据从PHP传递到JavaScript? (20个答案) 5年前关闭。 我正在尝试将PHP数组变量转换为JavaScript变量。 这是我的代码: 我无法获得PHP数组的价值。 我该如何解决这个问题? 问题答案: 在下面的示例中,您具有一个PHP数组,然后首先通过一个PHP数组创建一个JavaScript数组:

  • 我有一个web项目与VM参数称为"-Dfile" 我在applicationContext上使用这个参数如下: 在Eclipse中,为了进行测试,我使用“运行配置”来设置如下值: 现在,我想在ApacheTomcat上测试我的webapp,所以我需要设置/发送folder VM参数。 我怎么做到的? 我必须使用setenv。嘘?怎样有人能给我举个例子吗? 谢谢对不起我的英语