--1:建表
CREATE TABLE t1 (
tid VARCHAR2(20),
tname VARCHAR2(20)
)
--2:自动编号连续的触发器
CREATE OR REPLACE TRIGGER tri_t_t1atu
--在真正insert数据库之前
BEFORE INSERT
ON t1 -- on 具体的表
FOR EACH ROW
DECLARE
max_id VARCHAR2(20);
BEGIN
SELECT 'TID'||lpad(substr(nvl(max(tid),'TID000'),4,3)+1,3,0) INTO max_id FROM t1;
:NEW.tid := max_id; --把max_id赋给tid列
END;
/*MAX(tid):找出最大值
nvl(MAX(tid),'TID000'):处理null值
substr(nvl(max(tid),'TID000'),4,3):从第4位开始,截取3位
+1:截取完后的数字+1;
lpad(+1后的数字,要满足的位数,不够在left补0);
'TID'||lpad():字符串连接成最终的 ‘TID000’样子*/
/*正确的理解:
·如果要修改新行中的值(:new.字段名 := 值),只能用 before。
·如果不修改,before和after都可以。
before和after的区别:就是能否修改new变量!(至少为什么,这是语法)*/
3:执行
INSERT INTO t1(tname) VALUES('a');
INSERT INTO t1(tname) VALUES('b');
INSERT INTO t1(tname) VALUES('c');
COMMIT;
结果:
1 TID001 a
2 TID002 b
3 TID003 c
4 TID004 a
5 TID005 b
6 TID006 c
分享到:
相关推荐
到此这篇关于Navicat Premium中Oracle创建主键自增的方法的文章就介绍到这了,更多相关Navicat Premium主键自增内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!
Oracle数据库自带的几个触发器(最简单触发器格式)示例如下: -- create or replace trigger MDSYS.sdo_drop_user after drop on DATABASE declare stmt varchar2(200); BEGIN if dictionary_obj_type = 'USER...
查看对象的依赖关系(比如视图与表的引用) 在Oracle中建一个编号会自动增加的字段,以利于查询 在数据库触发器中使用列的新值与旧值
撤销表空间专门进行回退信息的自动管理。临时表空间是专门进行临时段管理的表空间。用户表空间用于分离不同应用的数据,而且能够减少读取数据文件时产生的I/O冲突。 6. 说明Oracle 10g数据库文本初始化参数文件与...
1.delete不能使自动编号返回为起始值。但是truncate能使自动增长的列的值返回为默认的种子 2.truncate只能一次清空,不能按条件删除。但是delete可以按条件清除部分记录。 3.truncate清空数据表性能(速度)比delete...
│ 触发器自动维护已用&未用编号.sql │ 连续编号.sql │ 防止重复的示例.sql │ 项目编号=各项目独立流水号&各年不同.sql │ ├─第06章 │ │ 6.1.1 NULL对IN的查询的影响及解决示例.sql │ │ 6.1.2 各种联接的...
类别自动生成编号示例.sql │ 自已做标识列的例子.sql │ 触发器自动维护已用&未用编号.sql │ 连续编号.sql │ 防止重复的示例.sql │ 项目编号=各项目独立流水号&各年不同.sql │ ...
Ø 逻辑结构对象:是指数据库对象的管理元素,包括数据库名称、表空间、表、字段/域、视图、索引、触发器、存储过程、函数、数据类型、数据库安全性相关的设计、数据库配置有关的设计以及数据库中其他特性处理相关...
实例022 自动类型转换与强制类型转换 33 2.2 运算符 34 实例023 加密可以这样简单(位运算) 34 实例024 用三元运算符判断奇数和偶数 35 实例025 更精确地使用浮点数 35 实例026 不用乘法运算符实现2×16 37 实例027...
HttpModule 实现 ASP.Net (*.aspx) 中文简繁体的自动转换,不用修改原有的任何代码,直接部署即可! 服务器自定义开发二之客户端脚本回发 Web开发: 使用URL重写WEB主题切换 如何在Asp.Net1.1中实现页面模板(所谓的...
-- 首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba --然后,解除对scott用户的锁 alter user scott account unlock; --那么这个用户名就能使用了。 --(默认全局数据库名orcl) 1、...
24 实例022 非矩形窗体 24 实例023 建立字体形状窗体 25 实例024 控件随窗体自动调整 26 实例025 带分隔栏的窗体 27 实例026 随机更换主界面背景 27 1.7 多媒体光盘 28 实例027 ...
实例060 在RichTextBox控件中实现项目编号功能 71 实例061 设置RichTextBox控件中文本对齐方式 74 2.4 ListBox控件应用 77 实例062 在ListBox控件间交换数据 77 实例063 将数据库数据添加到ListBox控件中 78 ...