2013-08-06 64 views
4

我要插入一个存储过程的结果到一个临时表,就像这样:MySQL的:如何插入存储过程的结果到临时表

CREATE temporary TABLE NEWBalance (VendorAmount NUMERIC(15,2), 
            UserBalanceAmount NUMERIC(15,2)); 

INSERT NEWBalance call SP VenAccNo,PeopleId; 

但是,这会产生一个错误:

Error Code: 1064. You have an error in your SQL syntax; check 
the manual that corresponds to your MySQL server version for 
the right syntax to use near 'call SP VenAccNo,PeopleId' at line 1 

有没有办法做到这一点?

回答

6

不幸的是,你仍然无法在MySql中做到这一点。

一个可能的解决方案是修改您的SP并使其执行INSERT到临时表中。

CREATE PROCEDURE your_sp(...) 
BEGIN 
    -- do your processing 
    ... 
    -- insert results into a temporary table 
    INSERT INTO NEWBalance ... 
    SELECT ...; 
END 

那么你的流量是这样

CREATE temporary TABLE NEWBalance 
(
VendorAmount NUMERIC(15,2), 
UserBalanceAmount NUMERIC(15,2) 
); 

CALL your_sp (...); 

-- do your processing on data in a temporary table 
... 

DROP TEMPORARY TABLE NEWBalance; 
相关问题