在线QQ客服:1922638
专业的SQL Server、MySQL数据库同步软件
学习mysql时,我们可以通过auto_increment自己轻松地实现主键-增加功能,但是在Oracle数据库中没有这样的关键字,因此主键自增加不能通过这种方式实现。下面,我将为您介绍两种增加主键的方法。
这两种方法的基础都有一个概念序列(序列)一种概念是使用序列和显式调用实现主键自增的方法,另一种方法是通过序列和触发(触发)以实现主键增量。
第一步,创建表
-创建一个表,主键是ID
创建表YFF(
ID INT主键,
NAME VARCHAR2(10)
);
-创建的表格的格式
CREATE TABLE表名(
字段名称字段类型(可以添加一些约束,例如主键约束),
字段名称字段类型
)
第二步,创建序列
-创建序列
\创建序列 seq_yff
以1
开头
增加1;
-创建序列的格式
创建序列序列名称
始于\起始号码
递增\\ ub26;增长数字
minvalue 最小值
maxvalue 最大值
周期是否为周期(周期为周期,nocycle不是周期)
nocache \不要使用缓存
序列上的其他重要操作
-查询序列(使用nextval查询序列的下一个值)
\从双重选择seq_yff.nextval;
-查询序列的格式
选择序列名称。双重的nextval
(对偶是一个伪表,当我们不需要从特定表中获取表中的数据时,只需
获取我们想要的一些信息,可以使用伪表)
注意:第一次执行此查询语句时,得到的结果为1,然后得到2,则第一个实现主键增量方法是使用序列名称。 Nextval使值增加
-删除序列()
DROP SEQUENCE seq_yff;
注意:序列和表格未连接在一起。在创建序列并在此表之后使用该序列后,我将删除该表,但序列的值仍保持在先前的值,因此您需要注意此问题
第三步是使用序列+显式调用进行自我增量
插入YFF值(seq_yff.nextval,”张三”);
插入YFF值(seq_yff.nextval,”张三”);
从YFF中选择*;
表格和序列已在此处的第一种方法中使用
\\ n 步骤1,在创建表和序列之后,创建触发器
\-创建触发器
创建或替换触发器tri_yff_insert
在YFF上插入
将新旧引用为旧
对于每一行
开始
选择seq_yff.nextval
进入:new.ID
从双重
结束tri_yff_insert;
-创建触发格式
创建[或替换] tigger触发器名称
触发时间触发事件
表名
[对于每一行]
开始
pl/sql语句
结束
-解释上面的触发语句
创建或替换触发器tri_yff_insert 创建一个触发器并命名为
在插入YFF之前 触发时间是在插入表YFF时
引用旧为旧,新引用为新\
对于每一行 对该表的每一行触发一次,否则只对整个表运行一次
开始
选择seq_yff.nextval
进入:new.ID
从双重
结束tri_yff_insert;
触发器上的其他操作
-在查询表中触发
从all_triggers WHERE table_name =” YFF”中选择*
-删除触发器
删除触发器tri_yff_insert;
步骤2,插入数据
插入\\ ubsp; YFF(ID,Name)值(100,”李四”);
插入\\ ubsp; YFF(名称)值(”李四”);
\-无论是否分配了主键,触发器都将使主键值成为序列的值