Oracle 创建主键自增表示例代码_oracle

前言

本篇文章给大家主要介绍的是在oracle中如果创建自增长表的方法,这里要用到序列。下面话不多说,我们来看示例代码。

示例代码

create table tb_student
(
  id         NUMBER(10)      not null,
  createtime     DATE         not null,
  constraint PK_tb_student primary key (id)
);

comment on table "tb_student" is
'学生表';

comment on column "tb_student"."id" is
'主键id';

comment on column "tb_student"."createtime" is
'创建时间';

--创建序列
create sequence seq_tb_student
minvalue 1
nomaxvalue
start with 1
increment by 1
nocycle  --一直累加,不循环
nocache; 

--创建触发器,如果insert语句不指定ID自动插入增长值
CREATE OR REPLACE TRIGGER tr_tb_student
BEFORE INSERT ON tb_student FOR EACH ROW WHEN (new.id is null)
begin
select seq_tb_student.nextval into:new.id from dual;
end;

注意:触发器是非必须的,可以从业务上严格要求指定插入值。

注意oracle限制对象名的字符长度不能超过30个字符,所以表名要控制在一定的长度否则后面创建序列可能会超过限制,建议表名控制在27个字符以下。

总结

以上就是Oracle创建主键自增表的全部内容,希望本文的内容对大家的学习或者使用Oracle带来一定的帮助,如果有疑问大家可以留言交流,小编会尽快给大家回复的。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索oracle自定义主键
oracle主键自增长
oracle创建表主键自增、oracle创建自增主键、oracle 自增主键、oracle数据库主键自增、oracle 设置主键自增,以便于您获取更多的相关知识。

时间: 2024-09-20 12:42:18

Oracle 创建主键自增表示例代码_oracle的相关文章

Oracle创建主键自增表(sql语句实现)及触发器应用_oracle

1.创建表 复制代码 代码如下: createtableTest_Increase( useridnumber(10)NOTNULLprimarykey,/*主键,自动增加*/ usernamevarchar2(20) ); 2.创建自动增长序列 复制代码 代码如下: CREATESEQUENCETestIncrease_Sequence INCREMENTBY1--每次加几个 STARTWITH1--从1开始计数 NOMAXVALUE--不设置最大值,设置最大值:maxvalue9999 NO

创建主键或单号的存储过程

问题描述 如何建一个创建主键或者ID(单号)的存储过程或者函数 解决方案 解决方案二:createtableHYBG(IDintIDENTITY(1,1)PRIMARYKEY) 解决方案三:楼上的int有些限制,提供一个方案仅供参考,建一个ID表(IDDecimal),不要自动增长(或者是一个用时间format的字符串),写一个方法或者是存储过程,每次请求将ID+1或者是new一个datetime.now的新key,在方法内部用lock关键字防止ID重复解决方案四:存储过程不方便在这里写吧

MySQL 创建主键,外键和复合主键的语句_Mysql

1.创建主键语法 ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名); 2.创建外键语法 ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列] ; 3.使用组合主键 如果一列不能唯一区分一个表里的记录时,可以考虑多个

MySQL里Create Index 能否创建主键 Primary Key_Mysql

MySQL里Create Index 能否创建主键 Primary Key? 答案: 不能,必须用 Alter table 创建. MySQL一个索引列最大允许的有效长度,不是列的所有数据都被索引的 MyISAM 是 1000字节 InnoDB 是 767 字节 注意这里是字节.

分区表不建议创建主键的原因

分区表尽量不要建主键,因为建主键的同时会建一个唯一性的全局索引,在drop分区表时如果不指定update global indexes则 会使索引失效,导致数据无法入库. 如果非要建主键,要2种方法: 1.应用上drop 分区表时显示指定update global indexes, 2.将主键上的索引建成本地索引 上述2种方法虽然可以实现,但效果都不好.因为当数据量超大时维护索引也是很大的开销.将主键建成本地索引的方法也比较受限. 将主键建成本地索引方法: 建一个包含(分区列.主键列)的唯一性复

php对二维数组按指定键值key排序示例代码_php技巧

复制代码 代码如下: function array_sort($array, $key){ if(is_array($array)){ $key_array = null; $new_array = null; for( $i = 0; $i < count( $array ); $i++ ){ $key_array[$array[$i][$key]] = $i; } ksort($key_array); $j = 0; foreach($key_array as $k => $v){ $ne

Flex 遍历Object键和值的示例代码_Flex

遍历键 for(var k:String in obj) { trace("Key: " + k + " - value: " + obj[k]); } 遍历值 for each(var v:* in obj) { trace("Value: " + v); } 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索遍历键 遍历值 flex object 遍历.js 遍历对象属性

oracle命令行删除与创建用户的代码_oracle

oracle命令行删除用户:  复制代码 代码如下:  connect / as sysdba;    shutdown abort;    startup;    drop user user1 cascade;    exit oracle命令行创建用户:     复制代码 代码如下: create user user1     identified by values 'fa091872a2cc669c'     default tablespace user1     temporary

oracle删除主键查看主键约束及创建联合主键_oracle

1,主键的删除 ALTER TABLE TABLENAME DROP PRIMARY_KEY 执行上面的SQL可以删除主键:如果不成功可以用 ALTER TABLE TABLENAME DROP CONSTRAINTS COLUMN CASCADE; --删除约束 ALTER TABLE TABLENAME DISABLE PRIMARY_COLUMN ; --设置被设置为主键的列为无效 DROP INDEX INDEX_NAME; --删除主键索引 2,查看主键约束 SELECT * FROM