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

通过脚本[复制]使列自动递增

单于旭东
2023-03-14

我对Oracle环境并不陌生。我有一个以下脚本,用于创建包含少量列的表。

CREATE TABLE CLASS_STUDENT_LECTURES_MAP(
    STUDENT_LECTURES_ID NUMBER(38,0)    NOT NULL, 
    STUDENT_CODE        NUMBER(38,0)    NOT NULL, 
    STUDENT_NAME_DEFINATION_ID  NUMBER(38,0)    NOT NULL, 
    CONSTRAINT STUDENT_LECTURES_ID _PK PRIMARY KEY (STUDENT_LECTURES_ID)
    );

我想要的是使主键列成为一个自动递增的列,这可以通过上面的sql脚本实现吗?

就像在SQLServer中一样,您可以指定IDENTITY(1,1)来使列自动递增。oracle有这样的选项吗?

共有1个答案

隆功
2023-03-14

在oracle中不能以直接的方式完成自动增量。您必须使用解决方法:

  1. 创建表

<代码>创建表CLASS\u STUDENT\u touchts\u MAP(STUDENT\u touchts\u ID NUMBER(38,0)不为空,STUDENT\u code NUMBER(38,0)不为空,STUDENT\u NAME\u DEFINATION\u ID NUMBER(38,0)不为空,约束STUDENT\u touchts\u ID \u PK主键(STUDENT\u touchts\u ID))

2...创建序列:

创建序列INCREMENT_SEQ从1递增1 NOCACHE NOCYCLE开始;

3.创建触发器:

`CREATE OR REPLACE TRIGGER table_a_BEFORE_INSERT_TRIGGER 
BEFORE INSERT ON table_a 
FOR EACH ROW
BEGIN
  SELECT increment_seq.NEXTVAL
  INTO   :new.id
  FROM   dual;
END;
/`

4.使用插入查询进行测试:

<代码>插入CLASS\u STUDENT\u courses\u MAP(STUDENT\u code,STUDENT\u NAME\u DEFINATION\u ID)值(10,20)

 类似资料:
  • 我有一个批处理文件,其中有用户名和密码登录以下格式的网站在第16行第5个字是用户名,第7个字是密码。 启动VPNGUI-c-用户1000-pwd 123456 我需要一个关于JavaScript的帮助,它应该打开网站主页,阅读批量文件收集用户名和密码,自动填写用户名和密码在主页上,并使用发送键登录。我已经尝试过使用vbscript,下面是我的代码,但我需要Java版本,它应该允许用户一次点击就自动

  • 编译安装完nginx后,默认情况下,你是不能像用命令行apt-get那样生成启动脚本的,也就是放在/etc/init.d上的脚本,要自己创建。 1. 复制一个启动脚本 创建一个文件/etc/init.d/nginx。 内容如下: #!/bin/sh ### BEGIN INIT INFO # Provides: nginx # Required-Start: $local_fs $

  • 问题内容: 我正在尝试使用自动响应来自动化mysql_secure_installation脚本。我的代码如下: 我正在自动化的实际问题如下: 但这给了我一个错误“很抱歉,您不能在此处使用空密码”,但是在屏幕上,我习惯按第一个问题的返回键。 问题答案: 您可以尝试使用Expect。看看这种自动化的mysql_secure_installation或我的修改。

  • 1.4* 自动加载脚本机制 前文已提及,vim 脚本主要用 :source 命令加载,然而很多情况下又不需要手动执行 该命令。只要将脚本放在特定的目录下,vim 就有个机制自动搜寻并加载的机制。 Vim 插件搜索目录 首先要知道有 &runtimepath (常简写为 &rtp)这个选项。它与系统的环境变量 $PATH 有点类似,就是一组有序的目录名称,用于 Vim 在许多不同情况下搜寻 *.vi

  • 问题内容: 当我偶然发现一个我想阻止公司访问的邪恶网站时,我在绑定服务器上编辑了named.conf文件,然后更新了代理服务器黑名单文件。我想用一个bash脚本来自动化它。假设我的脚本称为“ evil-site-block.sh”,其中包含以下内容: 然后以 当我在远程计算机上查看named.conf的内容时,我看到: 我不知道如何将“ google.com”作为$ 1传递。 问题答案: 您的问题

  • 问题内容: 有没有一种方法可以通过脚本更改/更新和删除/删除列说明? 我用来添加描述,但不允许更新。当我尝试使用相同的sp来更新现有的描述值时,它说类似“ description属性已经存在” 对我来说,更改或删除/创建类似的解决方案都是可以的。 解决方案 经过有用的回答和评论后,您可以在下面看到我的最终解决方案。可以帮助某人。 问题答案: 结合Steph Locke的建议,您可以使用以下方法检查