Oracel 自增长报错

andybingd 2014-05-13 01:13:22
我想实现ORACEL表主键的自增长
但是在建触发器的时候报错,就那么几行代码我真没找不出哪错了,求指教

...全文
163 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
点滴寸土 2014-05-13
  • 打赏
  • 举报
回复
引用 3 楼 babyqian84 的回复:
[quote=引用 2 楼 Juedaifanghua 的回复:] 你可以使用oracle自增长序列sequence 例如:create sequence s_test increment by 1 start with 1 nomaxvalue nocycle cache 10;
楼上不看题,楼主sequence已经建了 :new.cid不可以被赋值 你是想在insert 时再更新这个序列,不是兜圈子么,在insert groupon_cus_info时直接把SEQ_CID.nextval赋给cid就可以了 [/quote] 是的,赋值直接赋值就行,没必要通过中间变量
jackie505 2014-05-13
  • 打赏
  • 举报
回复
为咩不发到oracle板块
babyqian84 2014-05-13
  • 打赏
  • 举报
回复
引用 2 楼 Juedaifanghua 的回复:
你可以使用oracle自增长序列sequence 例如:create sequence s_test increment by 1 start with 1 nomaxvalue nocycle cache 10;
楼上不看题,楼主sequence已经建了 :new.cid不可以被赋值 你是想在insert 时再更新这个序列,不是兜圈子么,在insert groupon_cus_info时直接把SEQ_CID.nextval赋给cid就可以了
Juedaifanghua 2014-05-13
  • 打赏
  • 举报
回复
你可以使用oracle自增长序列sequence 例如:create sequence s_test increment by 1 start with 1 nomaxvalue nocycle cache 10;
babyqian84 2014-05-13
  • 打赏
  • 举报
回复
引用 7 楼 andybingd 的回复:
[quote=引用 3 楼 babyqian84 的回复:] [quote=引用 2 楼 Juedaifanghua 的回复:] 你可以使用oracle自增长序列sequence 例如:create sequence s_test increment by 1 start with 1 nomaxvalue nocycle cache 10;
楼上不看题,楼主sequence已经建了 :new.cid不可以被赋值 你是想在insert 时再更新这个序列,不是兜圈子么,在insert groupon_cus_info时直接把SEQ_CID.nextval赋给cid就可以了 [/quote] 我这个刚刚接触,不是很明白。Oracl数据库中表名groupon_cus_info,其主键名是cid,类型number(10,0) sequence语句 CREATE SEQUENCE "GROUPON"."SEQ_CID" MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE ; 触发器语句 CREATE OR REPLACE TRIGGER TR_GROUPON_CUS_INFO BEFORE INSERT ON "groupon_cus_info" for each row BEGIN select SEQ_CID.nextval into :new.cid from dual; END; 这样报错如一开始的图 [/quote] sequence 直接用就可以了,不需要建trigger,如下: insert into groupon_cus_info (cid ) values (SEQ_CID.nextval); 这样sequence就自增了
andybingd 2014-05-13
  • 打赏
  • 举报
回复
引用 3 楼 babyqian84 的回复:
[quote=引用 2 楼 Juedaifanghua 的回复:] 你可以使用oracle自增长序列sequence 例如:create sequence s_test increment by 1 start with 1 nomaxvalue nocycle cache 10;
楼上不看题,楼主sequence已经建了 :new.cid不可以被赋值 你是想在insert 时再更新这个序列,不是兜圈子么,在insert groupon_cus_info时直接把SEQ_CID.nextval赋给cid就可以了 [/quote] 我这个刚刚接触,不是很明白。Oracl数据库中表名groupon_cus_info,其主键名是cid,类型number(10,0) sequence语句 CREATE SEQUENCE "GROUPON"."SEQ_CID" MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE ; 触发器语句 CREATE OR REPLACE TRIGGER TR_GROUPON_CUS_INFO BEFORE INSERT ON "groupon_cus_info" for each row BEGIN select SEQ_CID.nextval into :new.cid from dual; END; 这样报错如一开始的图
andybingd 2014-05-13
  • 打赏
  • 举报
回复
楼上不看题,楼主sequence已经建了 :new.cid不可以被赋值 你是想在insert 时再更新这个序列,不是兜圈子么,在insert groupon_cus_info时直接把SEQ_CID.nextval赋给cid就可以了 [/quote] 我这个刚刚接触,不是很明白。Oracl数据库中表名groupon_cus_info,其主键名是cid,类型number(10,0) sequence语句 CREATE SEQUENCE "GROUPON"."SEQ_CID" MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE ; 触发器语句 CREATE OR REPLACE TRIGGER TR_GROUPON_CUS_INFO BEFORE INSERT ON "groupon_cus_info" for each row BEGIN select SEQ_CID.nextval into :new.cid from dual; END; 这样报错如一开始的图
andybingd 2014-05-13
  • 打赏
  • 举报
回复

这是代码

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧