请教存储过程和函数的思路
对数据库中的一个表,我要从另一个表中Select多行出来Insert进来,
本来只用一个语句就可以了,
Insert Into Table1(...)
(Select ... From Table2 Where )
但是现在,对Table2 Select出来的某一列需要作一些较为复杂的计算,
并且这个计算中要对另一个表Table3进行Update;
本来,如果没有Update语句,直接写一个函数就可以了.
但现在真不知道怎么办?
请教了.等待中...
------解决方案--------------------中间可以用临时表转换...
------解决方案--------------------用存储过程实现
------解决方案--------------------先对table2进行计算结果存在临时表了,到时插入时从临时表中取.
------解决方案--------------------存储过程吧
------解决方案--------------------建议:
在table3上创建update触发器,这样就可以不用在这里加入相应的update代码了。
------解决方案--------------------分成两次update不行吗?
第一次计算table2,update table3
第二次再重新计算table2,或者从table3读,update table1。
何必写成函数?
调用越复杂越慢。。。。
------解决方案--------------------写成存储过程,函数中不能执行UPDATE操作
------解决方案--------------------do fun1 with 'table1.dbf ', 'table2.dbf ', 'table3.dbf '
FUNCTION fun1(table1,table2,table3)
select * from &table2 into table temp
....对临时表temp的处理....
Insert Into &Table1(...) (Select ... From temp Where )
update &teble3 set ......=...... where.....
ENDFUNC
------解决方案--------------------數據庫也用上了OOP的特點了
------解决方案--------------------頂啊,同時更新大批數據會不會引起死鎖啊?