最近做的的一个信息化项目里,我负责其中的财务模块。
里面可以对公司所有项目的财务信息监控,有一个基本的功能就是删除“项目”,而项目下有很多的财务数据,如预收款,监控信息,实际收款,支出,等多种财务信息。
虽然采用Hibernate,但并没有用它的级联删除。
数据库用的是Oracle10g,决定写个触发器玩玩。
如下
[code]create or replace trigger deleteProject
before delete on project
for each row
declare
-- local variables here
project_number char;
begin
project_number :=:new.project_number;
delete from should_gather sg where sg.project_number=project_number;
end deleteProject;[/code]
执行了一下一看,delete from project p where p.projectNumber=”Z-SK0000”,把should_gather表的数据给清了,吓了我一身冷汗,幸亏只是先写了一个表,否则其他财务数据就。。,呵呵。
声明变量project_number 用的char,
改成 [code]project_number project.project_number%type[/code]
就行了,变量类型和某个表的字段类型一样就行了。
以后写代码要稳一些,不能太着急。
里面可以对公司所有项目的财务信息监控,有一个基本的功能就是删除“项目”,而项目下有很多的财务数据,如预收款,监控信息,实际收款,支出,等多种财务信息。
虽然采用Hibernate,但并没有用它的级联删除。
数据库用的是Oracle10g,决定写个触发器玩玩。
如下
[code]create or replace trigger deleteProject
before delete on project
for each row
declare
-- local variables here
project_number char;
begin
project_number :=:new.project_number;
delete from should_gather sg where sg.project_number=project_number;
end deleteProject;[/code]
执行了一下一看,delete from project p where p.projectNumber=”Z-SK0000”,把should_gather表的数据给清了,吓了我一身冷汗,幸亏只是先写了一个表,否则其他财务数据就。。,呵呵。
声明变量project_number 用的char,
改成 [code]project_number project.project_number%type[/code]
就行了,变量类型和某个表的字段类型一样就行了。
以后写代码要稳一些,不能太着急。