原先mysql中每个自增字段,在oracle中就需要建立一个sequence和一个trigger。

就算同一个表中有x个自增字段,那么就需要建立x个sequence和x和trigger。

实际中,我建立了915个sequence和915个trigger。因为mysql有915个自增自段。

生成的语句如下:

create sequence SEQ_E3_910_YUGOU_GOODSMX_ID increment by 1 start with 1
minvalue 1
nomaxvalue
nocache
order;

create trigger TRIGGER_E3_910_YUGOU_GOODSMX_I before insert on "YUGOU_GOODSMX"
for each row
begin
select SEQ_E3_910_YUGOU_GOODSMX_ID.nextval into:new."ID" from sys.dual
;
end;

有915个这样的成对语句出现。

但是运行时,报错了ORA-24344: success with compilation error。(警告: 创建的触发器带有编译错误。)

于是我只运行create sequence ,没有问题,一下跑了几百个。

再只运行create trigger ,就会报如上的错误 。

但是我把这些create trigger,在navicat里单个运行,就都能成功。

查了老半天,才知道原因是:http://www.2cto.com/database/201304/205599.html

因为触发器需要先编译,每创建一个触发器,需要以“/”结束,然后才能执行下一个。

于是改为如下:

create trigger TRIGGER_E3_910_YUGOU_GOODSMX_I before insert on "YUGOU_GOODSMX"
for each row
begin
select SEQ_E3_910_YUGOU_GOODSMX_ID.nextval into:new."ID" from sys.dual
;
end;

/

就一次性跑通多个create trigger了。

关于oracle的sequence和trigger。的更多相关文章

  1. oracle中sequence(自增序号)的用法

    转载:https://www.cnblogs.com/liuzy2014/p/5794928.html 在oracle中sequence就是序号,每次取的时候它会自动增加.sequence与表没有关系 ...

  2. oracle创建sequence序列语法

    在oracle中sequence就是序号,每次取的时候它会自动增加.sequence与表没有关系 1.create sequence create sequence SEQ_LOG_ID minval ...

  3. JDBC读取新插入Oracle数据库Sequence值的5种方法

    Oracle的sequence实现非常灵活,所以也带来一些易用性问题,如何取到新插入记录生成的sequence值与其它数据库有较大差别,本文详国介绍了5种实现读取新插入记录sequence值的方法. ...

  4. Hibernate用Oracle的sequence生成自增Id

    <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBL ...

  5. Oracle Metric sequence load elapsed time

    Oracle Metric sequence load elapsed time The sequence load elapsed time Oracle metric is the amount ...

  6. Oracle 使用sqlnet.ora/trigger限制/允许某IP或IP段访问指定用户

    Oracle 使用sqlnet.ora/trigger限制/允许某IP或IP段访问指定用户 学习了:http://blog.itpub.net/28602568/viewspace-2092858/ ...

  7. [转帖]Oracle 使用sqlnet.ora/trigger限制/允许某IP或IP段访问指定用户

    Oracle 使用sqlnet.ora/trigger限制/允许某IP或IP段访问指定用户 原创 Oracle 作者:maohaiqing0304 时间:2016-05-03 17:05:46  17 ...

  8. oracle关于sequence的个人理解

    oracle关于sequence的个人理解 1. sequence在多用户使用时的同步问题 个人感觉sequence是以连接(会话)为基础,类似于java中使用mysql的一个connection 网 ...

  9. oracle 主键生成策略-sequence序列+trigger触发器

    oracle中设置表的主键字段为自增序列(实例)1.首先创建一个表(如日志表) //删除库表中存在的日志表drop table S_LOG_INFO cascade constraints;//新建日 ...

随机推荐

  1. [k8s]组件日志级别说明

    kubectl 执行命令时候 --v 调试, 也可以用作其他组件的 --v配置 参考: https://kubernetes.io/docs/user-guide/kubectl-cheatsheet ...

  2. 如何改变iframe滚动条的样式?

    如何改变iframe滚动条的样式? web前端开发 css javascript iframe html RayLiao 2014年11月19日提问 · 2014年11月20日更新 关注 关注 收藏 ...

  3. 基于libmemcached,php扩展memcached的安装

    基于libmemcached,php扩展memcached的安装 张映 发表于 -- 分类目录: php 标签:libmemcached, memcached, php, 安装 一,为什么要装memc ...

  4. Windows/OS X下制作Mac安装U盘

    Windows下制作: 方法一:(适用于OSX 10.9以前) 前期准备:一台windows电脑 UltraISO软件 Mac系统镜像dmg(这里使用Mac os x 10.8.4) 至少8GB的U盘 ...

  5. 解决:std::ostream operator<< should have been declared inside 'xxx'

    用VS的NMAKE构建,不会报错,但是用GNU MAKE构建,就会报错.(尝试删除Toast.h中第24行的声明) 因此在遇到类似的情况的时候,记得不仅class里面要有friend声明,namesp ...

  6. hdu 1022 Train Problem

    Train Problem I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  7. [转]所有编程皆为 Web 编程

    Web编程还远远没有达到完美的境地.其实,还有点乱!没错,随便会写点代码的人就能三下两下地搞出一个糟糕的Web应用:也确实,99%的Web 应用都似狗屎一堆.但是,这也意味着,相当“聪明”的程序员们正 ...

  8. PHP——上传头像(1)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. mybatis慢查询配置

    <?xml version="1.0" encoding="UTF-8"?> <!--suppress SpringFacetInspecti ...

  10. 微信抢红包微信 PHP代码实现

    header("Content-Type: text/html;charset=utf-8");//输出不乱码,你懂的 $total=10;//红包总额 $num=8;// 分成8 ...