Oracle数据表ID自增操作

news/2025/2/14 2:42:54/

1、SQL编写

-- 新建用户
create user root IDENTIFIED by 123456;
-- 将默认的USERS空间分配给用户
alter user root default tablespace users;
-- 授权角色以及权限(默认三个角色:connect、resource、dba)
grant create session,create table,unlimited tablespace,resource,connect to root;

create session:登录权限

create table:建表权限

unlimited tablespace:用户在自己的空间中不限制大小

resource:resource角色

connect:connect角色

注意:序列名称、触发器名称、表名、字段名等都得带引号,否则会自动被Orale转化成大写,因为Oracle大小写敏感会导致找不到。

-- 创建表
CREATE TABLE "ROOT"."T_STU" ("id" NUMBER NOT NULL,"name" VARCHAR2(255),PRIMARY KEY ("id")
)-- 创建序列
CREATE SEQUENCE "ROOT"."Seq01" MINVALUE 1 INCREMENT BY 1 NoMaxValue START WITH 1;-- 创建触发器
create or replace TRIGGER "ROOT"."Trigger01" BEFORE INSERT ON "ROOT"."T_STU" REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW 
BEGINselect "Seq01".nextval into :NEW."id" from dual;
END;
-- 插入数据
INSERT INTO "ROOT"."T_STU" ("name") VALUES ('小红');
-- 查看结果
SELECT * FROM ROOT."T_STU";

2、Navicat操作

序列和触发器的位置在【其他】选项里面。

1、创建表:保存时命名  T_STU

示例字段只需要一个id,一个name即可 

 2、序列-创建序列:保存时命名 Seq001

 3、触发器-创建触发器:保存时命名   Trigger001

常规选项卡中:触发器类型选【TABLE】,表模式选【ROOT】,表明选择【T_STU】

高级选项卡中选填:引用旧【OLD】,引用新的【NEW】

 

 定义选项卡中:需要将序列Seq001的序号查出来并放入T_STU表的id中。

BEGIN
  select "Seq001".nextval into :NEW."id" from dual;
END;

 

 4、最后看一下预览SQL

其中"Untitled"是未保存的默认触发器名。

 5、最后一步插入数据观察递增情况

---------------------------------------------------------------------------------------------------------------------------- 

其他权限相关操作

-- 创建表空间
create tablespace root_tablespace datafile 'd:\data.dbf' size 2048m;
-- 用户root在表空间root_tablespace中所分配的空间没有限制
alter user ROOT quota unlimited on root_tablespace;
-- 删除表空间
drop tablespace root_tablespace including contents cascade constraints;
-- 查看所有用户
select * from dba_users;
-- 修改密码
alter user root identified by "123456";
-- revoke取消授权
revoke resource from root;
-- 查看角色包含的权限
select * from role_sys_privs where ROLE='CONNECT' or ROLE='RESOURCE';
-- 查看用户拥有的角色
select * from dba_role_privs where GRANTEE='ROOT';
-- 查看用户拥有的系统权限
select * from dba_sys_privs where GRANTEE='ROOT';


http://www.ppmy.cn/news/2287.html

相关文章

每日一题:冒泡排序

每日一题:冒泡排序每日一题:冒泡排序第一种写法:第二种写法:每日一题:冒泡排序 冒泡排序是八大排序中较为简单的一种,具体详细可见:冒泡排序_百度百科 (baidu.com) 我们重点来看冒泡排序的步骤: 冒泡排序…

信号和电源隔离的有效设计技术

介绍 如今,电子产品设计师比以往任何时候都更面临着一系列共同的目标:实现更高的吞吐量、更高的分辨率、更高效的系统和缩短上市时间。在工业自动化、医疗电子或电信系统等领域,通常需要电隔离多个信号,以使子系统能够共享数据或…

什么是JDBC?JDBC程序的具体实现步骤

什么是JDBC?JDBC程序的具体实现步骤JDBC的全称是Java数据库连接(Java Database Connectivity),它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系数据库,并使用SQL语句来完成对数据库中数据的查询、更新和删除等操作。应…

React - setState 更新状态的两种写法

React - setState 更新状态的两种写法一.对象式的 setState二. 函数式的 setState三. 对象式的setState 对比 函数式的 setState四. 一个 setState 使用组件实例setState() 将对组件 state 的更改排入队列,并通知 React 需要使用更新后的 state 重新渲染此组件及其子…

详解设计模式:解释器模式

解释器模式(interpreter pattern),是在 GoF 23 种设计模式中定义了的行为型模式。 解释器模式 这种模式被用在 SQL 解析、符号处理引擎等。 解释器模式 给定一个语言,定义它的文法的一种表示,并定义一个解释器&#xf…

Java高效率复习-数据类型和运算符[Java]

第一篇关于JavaSE内容的文章 文章的风格比较涣散,但是都是干货,关于Java系列的,还有就是,我认为只有MySQL基础和JavaSE基础是可以做到可操作性和可执行性较强的。 如果像JavaWeb或者SSM框架这些,光看文章你是根本执行…

gnn神经网络是什么,gnn神经网络代码

1、gnn什么意思? 指图形神经网络。 生物神经网络主要是指人脑的神经网络,它是人工神经网络的技术原型。人脑是人类思维的物质基础,思维的功能定位在大脑皮层,后者含有大约10^11个神经元。 每个神经元又通过神经突触与大约103个其它神经元…

vue - vue使用echarts实现中国地图和点击省份进行查看

文章目录1,实现的效果和功能2,安装ECharts3,main.js里面引入echarts4,实现如下5,遇到的问题6,用到的模拟数据1,实现的效果和功能 vue使用echarts实现中国地图和点击省份进行查看; 下…