(这几天做了个小小课程设计时用的是oracle数据库,第一次用,发现oracle和我们以前用的sql server 、mysql是有如此多不同的地方,下面是遇到的问题之一和解决方法,和大家分享下)

用惯sql server 或 mysql 的同志们都知道,要一个字段自增,在创建表时加一个auto_increment即可,可是oracle则不然,oracle表中字段并没有自增的属性,那id自增怎么办呢?

没事,还是那句话办法总是有D。好,不废话,直接上源码吧:

先创建一个序列:

 CREATE SEQUENCE  SEQU_FANGWUXINXI_AUTOINC -- SEQU_FANGWUXINXI_AUTOINC 是序列名
MINVALUE 1 -- 最小值
MAXVALUE 9999999999999999999999999999 -- 最大值(这里是表示无上限)
INCREMENT BY 1 -- 每次自增1
START WITH 1 -- 从1开始
nocache; -- 不用高速缓存

再创建一个触发器:

create or replace
trigger TRIG_FANGWUXINXI_AUTOINC
before insert on fangwuxinxibiao -- fangwuxinxibiao 是表名
for each row
declare
nextid number; -- 定义一个中间变量
begin
IF :new.FANGWUID IS NULL or :new.FANGWUID = 0 THEN --FANGWUID 是字段名 其中的new是当前使用的表
select SEQU_FANGWUXINXI_AUTOINC.nextval into nextid from dual; -- dual是一个伪表,百度便知
:new.FANGWUID := nextid;
end if;
end;

搞定!

如果有问题,欢迎留言交流,我会的话会尽快回复....

oracle 字段自增 两段代码搞定的更多相关文章

  1. 对百度WebUploader的二次封装,精简前端代码之图片预览上传(两句代码搞定上传)

    前言 本篇文章上一篇: 对百度WebUploader开源上传控件的二次封装,精简前端代码(两句代码搞定上传) 此篇是在上面的基础上扩展出来专门上传图片的控件封装. 首先我们看看效果: 正文 使用方式同 ...

  2. 对百度WebUploader开源上传控件的二次封装,精简前端代码(两句代码搞定上传)

    前言 首先声明一下,我这个是对WebUploader开源上传控件的二次封装,底层还是WebUploader实现的,只是为了更简洁的使用他而已. 下面先介绍一下WebUploader 简介: WebUp ...

  3. WPF一段代码搞定所有的点击事件

    用一个方法来控制转发所有的点击事件,界面图如下:    <Page x:Class="WPFNavigate.Index" xmlns="http://schema ...

  4. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(三):两个Viewmodel搞定增删改查

    前言:之前博主分享过knockoutJS和BootstrapTable的一些基础用法,都是写基础应用,根本谈不上封装,仅仅是避免了html控件的取值和赋值,远远没有将MVVM的精妙展现出来.最近项目打 ...

  5. 开源作品ThinkJDBC—一行代码搞定数据库操作

    1 简介 ThinkJD,又名ThinkJDBC,一个简洁而强大的开源JDBC操作库.你可以使用Java像ThinkPHP框架的M方法一样,一行代码搞定数据库操作.ThinkJD会自动管理数据库连接, ...

  6. [转] Java程序员学C#基本语法两个小时搞定(对比学习)

    Java程序员学C#基本语法两个小时搞定(对比学习)   对于学习一门新的语言,关键是学习新语言和以前掌握的语言的区别,但是也不要让以前语言的东西,固定了自己的思维模式,多看一下新的语言的编程思想. ...

  7. Asp.Net Core 轻松学-一行代码搞定文件上传 JSONHelper

    Asp.Net Core 轻松学-一行代码搞定文件上传   前言     在 Web 应用程序开发过程中,总是无法避免涉及到文件上传,这次我们来聊一聊怎么去实现一个简单方便可复用文件上传功能:通过创建 ...

  8. jquery侧边折叠导航栏制作,两行代码搞定

    jquery侧边折叠导航栏制作,两行代码搞定 //CSS*{margin: 0;padding: 0} ul{list-style: none} .menu li ul{display: none} ...

  9. IOS 一句代码搞定启动引导页

    前言引导页,一个酷炫的页面,自从微博用了之后一下就火起来了,对于现在来说一个app如果没有引导页似乎总显那么不接地气,那么为了让我们的app也“高大上”一次,我写了一个demo来实现启动引导页的实现, ...

随机推荐

  1. linux后台运行jar程序

    Linux 运行jar包命令如下: 方式一:java -jar XXX.jar特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出那如何让窗口不锁定? 方式二java ...

  2. spring boot 自学笔记(四) Redis集成—Jedis

    上一篇笔记Reddis集成,操作Redis使用的是RedisTemplate,但实际中还是有一大部分人习惯使用JedisPool和Jedis来操作Redis, 下面使用Jedis集成示例. 修改Red ...

  3. skynet1.0阅读笔记2_skynet的消息投递skynet.call

    为了了解 skynet.call 的调用过程,需要先看看 skynet的队列是如何把包分到不同工作线程的.看下图 查看 global_queue 的skynet_globalmq_push和skyne ...

  4. 周末大礼:jQuery技巧总结

    一.简介 1.1.概述 随着WEB2.0及ajax思想在互联网上的快速发展传播,陆续出现了一些优秀的Js框架,其中比较著名的有Prototype.YUI.jQuery.mootools.Bindows ...

  5. android 内存管理机制、异常、垃圾回收

    当 Android 应用程序退出时,并不清理其所占用的内存,Linux 内核进程也相应的继续存在,所谓“退出但不关闭”.从而使得用户调用程序时能够在第一时间得到响应. 当系统内存不足时,系统将激活内存 ...

  6. 下面关于XML叙述不正确的是( )

    A.XML标记必须关闭 B.XML是大小写敏感的 C.XML文件只能跟DTD文件一块使用 D.XML和XSL结合可以在浏览器上显示 解答:C

  7. php -- 检查是否存在

    1.检查变量是否存在:isset() 2.检查常量是否存在:defined() 3.检查方法是否存在:function_exists() 4.检查类是否存在:class_exists()

  8. js实现密码强度

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  9. Mysql中Innodb大量插入数据时SQL语句的优化

    innodb优化后,29小时入库1300万条数据 参考:http://blog.51yip.com/mysql/1369.html 对于Myisam类型的表,可以通过以下方式快速的导入大量的数据: A ...

  10. XLua系统学习

    官方网站:https://github.com/Tencent/xLua 学习手册:http://manual.luaer.cn/ 技术博客: http://blog.csdn.net/column/ ...