想用Myeclipse中hibernate的反向工程映射Oracle中的表,id生成选择了Sequence.映射失败。然后看数据库中的表,发现id不能自动生成,于是参照网上的方法在Oracle中新建了一个sequence,新建了一个触发器。CREATE SEQUENCE test_sequence //序列名
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE;create or replace trigger sysrole_id //触发器名
before insert on "NUMBERS"."TESTS"----(tests为表名,NUMBERS为用户名)
for each row----触发每一行
begin
select test_sequencee.nextval into :new.id from dual;
end;
运行之后,在表里插入数据,id仍然不能自动增长。还报出不能为空的错误。
急等!!!!!!!
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE;create or replace trigger sysrole_id //触发器名
before insert on "NUMBERS"."TESTS"----(tests为表名,NUMBERS为用户名)
for each row----触发每一行
begin
select test_sequencee.nextval into :new.id from dual;
end;
运行之后,在表里插入数据,id仍然不能自动增长。还报出不能为空的错误。
急等!!!!!!!
解决方案 »
- ORACLE技术群
- OEM中为什么看不到刚创建的数据库??
- 谁接触到上TB的数据。一个数据库文件mdf超过64G怎么办?
- ORACLE数据移行的问题
- 好头疼的事,求助!!!!!!
- 求sql
- 我有两台电脑,一台上成功安装ORACLE后,把安装包拷贝到另一台电脑上,安装ORACLE,出错:areaQuery 数据库加载错误!!郁闷中,请高手指
- 请问,在存储过程中是否能定义函数?能否给个例子?
- 请教很难写sql语句
- 令我彻夜难眠的Oracle9iAS安装问题,请大虾倾力相助,此致,敬礼!!
- 改了IP,OracleDBConsoleOrcl服务无法启动
- 如何将一台机子上的oracle数据库完整地转移到另一台机子上
2、试试这样呢:
create or replace trigger sysrole_id //触发器名
before insert on NUMBERS.TESTS----(tests为表名,NUMBERS为用户名)
for each row----触发每一行
begin
select test_sequence.nextval into :new.id from dual;
end;
before insert on "TEST2"
for each row
begin
select "EMP_SEQ".nextval into :NEW.TEXTID from dual;
end;create sequence EMP_SEQ
minvalue 1
maxvalue 9999999999
start with 10
increment by 1
cache 20;我是参照网上的写的。后来发现问题出在我以前错误的触发器一直没删。删了以后就可以用了。。
谢谢各位帮忙啊!多谢!刚刚参加工作第一次用Oracle做项目,难哦