oracle 数据表中实现字段的自动增长

由于一直用的是Mysql数据库,今天刚好心血来潮,想着和Java都是同一个老板出来的oracle自己却不会,说出去会不会有点丢人,故就开始翻资料,看视频搞起来,一步一个脚 印,想着写点什么,就开始从创建表开始吧,好了,废话不多说了,开始上正题创建一个表:

User表:

create table user(

   id number(5,0) not null primary key auto_increment,

   deptid number(5,0) not null,

   username varchar2(15) not null,

  password varchar2(15) not null,

  ,,,,,,,,,

  constraint fk_deptid foreign key(deptid) references department(id)

);

Department表

  create table department(

     id number(5,0) not null  primary key auto_incremnt,

    dept_name varchar2(20) notn ull

)

一切就这样顺其自然,感觉自己好牛B呀,两张表,代码一会就敲完了,想想这不是和Mysql创建数据表差不多吗,呵呵呵呵,,,,

 编译SQL 语句,,,怎么可能,怎么可能,竟然报错,再一次检查代码,感觉没有错误啊,再运行,还是报错,,,,oh, my god

查百度,再发现原来oracle设置自动增长字段不是这样,完全和Mysql的不一样,不一样啊

好吧,重新创建表:

User表

create table user(

id number(5) not null primary key ,

deptid number(5) not null,

username varchar2(20) not null,

password varchar2(20) not null,

,,,,,,

constraint fk_deptid foreign key(deptid) references department(id),

constraint un_username unique(username)

);

Department表

create table department(

id number(5) not null primary key,

deptname varchar2(20) not null

);

第二步,创建一个oracle序列user_increment_sequence

create sequence user_increment_sequence

    minvalue 1

    maxvalue 999999999

     increment by 1

    start with 1

    nocache;

第三步,该创建一个触发器user_increment_trigger

create or replace trigger user_increment_trigger

before insert 

for each row

begin 

select nextval into :new.id from dual;

end;

/

  第四步,检验成果,看是否能让字段自动增加

向user表中添加 一条数据 

insert into user values(2,‘kkk‘,‘kkk‘,‘kkk‘);                  ----------此处的2就外键部门号的字段

insert into user values(2,‘ddd‘,‘ddd‘,‘ddd‘);

查询,得到的数据显示刚好字段是自动增加的,至此,完毕 

时间: 2024-11-03 10:56:42

oracle 数据表中实现字段的自动增长的相关文章

Oracle中使用游标转换数据表中指定字段内容格式(拼音转数字)

应用场景:将数据表TB_USER中字段NNDP的内容中为[sannanyinv]转换为[3男1女] 主要脚本:一个游标脚本+分割字符串函数+拼音转数字脚本 操作步骤如下: 1.创建类型 create or replace type splitTable is table of varchar2(100); 2.创建函数fn_splitString(功能是将字符串分割成多条记录)--测试语句select * from table(fn_splitString('ernanyinv','nan'))

mysql -- 存储过程 往数据表中新增字段

需求: 往某数据库的某个表中新增一个字段(若该字段已存在,则不做操作:若该字段不存在,则新增) 百度了n久,没有符合要求的例子,只有参考加自己琢磨,最终终于给弄出来了,以下是几个版本的更迭 第一版: DELIMITER $$ CREATE PROCEDURE insert_column() BEGIN IF NOT EXISTS(SELECT 1 FROM information_schema.columns WHERE table_schema='ltivalley' AND table_na

sql 所有数据表中 插入字段

declare @tablename varchar(200)declare @sql varchar(2000)declare cur_t cursor forselect name from sysobjects where xtype= 'U ' and status> =0 and name not in (select name from sysobjects where id in (select id from syscolumns where id in (select id f

Oracle数据表中的死锁情况解决方法

不知道干了啥,把数据表锁住了,没法update. 百度了各种方法,总结如下. 查看被锁住的表(两句都可以): select * from v$session t1, v$locked_object t2 where t1.sid=t2.SESSION_ID   select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object

ArcGis 获取数据表中某字段唯一值

from:http://www.cnblogs.com/3echo/archive/2006/08/16/478094.html 1 /// <summary> 2         /// 得到要素类某字段的唯一值 3         /// </summary> 4         /// <param name="pFeatureClass">要素类</param> 5         /// <param name="

Oracle数据表中输入引号等特殊字符

Oracle输入特殊字符的特殊方法: UPDATE BOOKMARK SET BM_VALUE=q'/ --在这里写下需要输入的内容(可以包括引号.回车等特殊的符号),所见即所得 /' -- WHERE BM_NAME='XX'

oracle数据表中的中文变问号

先查询一下select userenv('language') from dual;查看oracle字符集, $ sqlplus /nolog SQL> connect sys/oracle as sysdba SQL> startup 如何设置ORACLE数据库的编码(ZHS16GBK)修改成UTF8 SQL> shutdown immediate; SQL> startup mount; SQL> alter system enable restricted sessio

统计数据表中某个字段的值大于2条的数据

select id,member_id,type from visits where type = 1 group by member_id  having count(*) >2; 原文地址:https://www.cnblogs.com/qxandxt/p/11106100.html

MySQL为数据表的指定字段插入数据

username not null 没有默认值/有默认值   insert不插入username字段 均不报错 2014年07月23日21:05    百科369 MySQL为数据表的指定字段插入数据 为数据表的指定字段插入数据,就是在INSERT语句中只向部分字段中插入值,而其它字段的值为数据表定义时的默认值. 基本的语法格式如下: INSERT INTO 表名(字段1,字段2,...,字段m) VALUES(值1,值2,...,值m); 字段1,字段2,...,字段m:表示数据表中的字段名称