2013-01-31 19 views
-1

我傳遞了兩個參數,我需要用多個插入調用填充統計表。它不工作,任何人都可以幫助我嗎?MySQL存儲過程不按預期插入

CREATE PROCEDURE STAT(IN arg_From DATETIME, IN arg_End DATETIME) 

INSERT INTO stats(source_id_fk,source_type,stat_type_id_fk, 
       stat_count,modified_on,created_on) 
(SELECT -1 as source_id_fk ,3 as source_type, 1 AS stat_type_id_fk , 
       COUNT(1) AS stat_count, NOW() AS modified_on , 
       NOW() AS created_on 
FROM wall_posts WHERE post_type =1 
and created_on >= arg_From 
and created_on <= arg_End group by 1,2,3,5,6) 

INSERT INTO stats(source_id_fk,source_type,stat_type_id_fk,stat_count, 
       modified_on,created_on) 
(SELECT -1 as source_id_fk ,3 as source_type, 2 AS stat_type_id_fk , 
       COUNT(1) AS stat_count , NOW() AS modified_on , 
       NOW() AS created_on 
FROM wall_posts WHERE post_type =2 
and created_on >= arg_From 
and created_on <= arg_End group by 1,2,3,5,6); 
+0

您是否看到'arg_eND'在定義中是這樣的,而在插入時是'arg_End'? – fedorqui

+0

當我複製到StackOverFlow時發生了這種情況。 – user437066

+0

如果可以的話,在發佈涉及代碼的問題時,花點時間讓它儘可能易讀。有人已經爲你重新格式化了它,但如果可能的話減少這種努力是仁慈的。 – halfer

回答

1

您需要;

結束第一INSERT語句使MySQL不認爲你的過程完成你有封裝在一個BEGIN ... END塊的多條語句,並更改分隔符。

DELIMITER $$ 
CREATE PROCEDURE STAT(IN arg_From DATETIME, IN arg_eND DATETIME) 
BEGIN 
INSERT INTO stats(source_id_fk,source_type,stat_type_id_fk, 
       stat_count,modified_on,created_on) 
(SELECT -1 as source_id_fk ,3 as source_type, 1 AS stat_type_id_fk , 
       COUNT(1) AS stat_count, NOW() AS modified_on , 
       NOW() AS created_on 
FROM wall_posts WHERE post_type =1 
and created_on >= arg_From 
and created_on <= arg_End group by 1,2,3,5,6); 

INSERT INTO stats(source_id_fk,source_type,stat_type_id_fk,stat_count, 
       modified_on,created_on) 
(SELECT -1 as source_id_fk ,3 as source_type, 2 AS stat_type_id_fk , 
       COUNT(1) AS stat_count , NOW() AS modified_on , 
       NOW() AS created_on 
FROM wall_posts WHERE post_type =2 
and created_on >= arg_From 
and created_on <= arg_End group by 1,2,3,5,6); 
END $$ 
DELIMITER ; /*and change it back to the normal `;` again*/ 
+0

Thanx @tombm它的作品 – user437066

+0

不客氣。 – fancyPants