我现在就想完成以下这个一件事,需要用存储过程实现
将visitnum表中的visitnum字段值更新到VISITCOUNT表中.
我首先要select visitnum from visitnum;查询visitnum 表的visitnum字段
然后insert into VISITCOUNT values(visitnum)就这么简单,但是我怎么能把visitnum 值拿到呢?大家有会的写个完整的存储过程吧,多谢啦
将visitnum表中的visitnum字段值更新到VISITCOUNT表中.
我首先要select visitnum from visitnum;查询visitnum 表的visitnum字段
然后insert into VISITCOUNT values(visitnum)就这么简单,但是我怎么能把visitnum 值拿到呢?大家有会的写个完整的存储过程吧,多谢啦
CREATE OR REPLACE PROCEDURE AAA IS
PARA VISITNUM.VISITNUM%TYPE;
BEGIN
SELECT VISITNUM INTO PARA FROM VISITNUM;
INSERT INTO VISITCOUNT VALUES(PARA);
END AAA;
INSERT INTO VISITCOUNT(ins_time,cnt)
select sysdate,VISITNUM FROM VISITNUM;
就可以了。
这是oracle的,其它数据库也有类似的语法支持。
正解。BTW,不是针对LZ
不要动不动就喜欢写存储过程。很多一句SQL就可以搞定的事情,不要用存储过程。
另外,有些人美其名曰“效率”。数据库效率是设计出来的,不是用存储过程就能解决的。
CREATE OR REPLACE PROCEDURE test IS
begin
select visitnum from visitnum
into visitnum
from VISITCOUNT
end test;
注意:VISITCOUNT前提存在............
不过不同数据库取时间的函数不同。这个主意下就行了!
SQL server:GetDate()
mysql :now();
insert into a(id,name) select id,name from b;
谁用2条了?
insert into ... select from ... 的语法,应该属于所有和数据库打交道的程序员都应知应会的。
你说“上面的SQL效率是执行两条SQL的一倍...”,看遍所有回帖,没人两条SQL——除了用存储过程的
INSERT INTO VISITCOUNT(ins_time,cnt)
select sysdate,VISITNUM FROM VISITNUM;
觉得这个比较好