代码如下,为什么这样使用游标不行呢?我觉得没有语法错误啊,老是提示有错。----------------------
DELIMITER $$DROP PROCEDURE IF EXISTS `combinetest`.`combine` $$
CREATE PROCEDURE `combinetest`.`combine` ()
BEGIN
DROP TABLE IF EXISTS combt;
CREATE TABLE combt
(id INT(10) UNSIGNED NOT NULL,
date_time_destroy DATETIME DEFAULT "0000-00-00 00:00:00",
attr_orig_ipv4_dst INT(10) UNSIGNED NOT NULL,
attr_orig_port_dst SMALLINT(5) UNSIGNED NOT NULL);
DECLARE ptname CURSOR
FOR
SELECT table_name FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema='combinetest' AND table_name LIKE 'ct_ipv4_log_2013_08_17_%';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_departments=1;
SET no_more_departments=0;OPEN tname;
REPEAT
FETCH ptname INTO @tname;
INSERT INTO combt SELECT id,date_time_destroy,attr_orig_ipv4_dst,attr_orig_port_dst FROM @tname;
UNTIL no_more_departments
END REPEAT;
CLOSE ptname;END $$DELIMITER ;
DELIMITER $$DROP PROCEDURE IF EXISTS `combinetest`.`combine` $$
CREATE PROCEDURE `combinetest`.`combine` ()
BEGIN
DROP TABLE IF EXISTS combt;
CREATE TABLE combt
(id INT(10) UNSIGNED NOT NULL,
date_time_destroy DATETIME DEFAULT "0000-00-00 00:00:00",
attr_orig_ipv4_dst INT(10) UNSIGNED NOT NULL,
attr_orig_port_dst SMALLINT(5) UNSIGNED NOT NULL);
DECLARE ptname CURSOR
FOR
SELECT table_name FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema='combinetest' AND table_name LIKE 'ct_ipv4_log_2013_08_17_%';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_departments=1;
SET no_more_departments=0;OPEN tname;
REPEAT
FETCH ptname INTO @tname;
INSERT INTO combt SELECT id,date_time_destroy,attr_orig_ipv4_dst,attr_orig_port_dst FROM @tname;
UNTIL no_more_departments
END REPEAT;
CLOSE ptname;END $$DELIMITER ;
FOR
SELECT table_name FROM INFORMATION_SCHEMA.TABLES
' at line 9
CREATE PROCEDURE `test`.`combine` ()
BEGIN
DECLARE ptname CURSOR
FOR
SELECT table_name FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema='combinetest' AND table_name LIKE 'ct_ipv4_log_2013_08_17_%';DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_departments=1;
DROP TABLE IF EXISTS combt;
CREATE TABLE combt
(id INT(10) UNSIGNED NOT NULL,
date_time_destroy DATETIME DEFAULT "0000-00-00 00:00:00",
attr_orig_ipv4_dst INT(10) UNSIGNED NOT NULL,
attr_orig_port_dst SMALLINT(5) UNSIGNED NOT NULL);
SET no_more_departments=0;OPEN tname;
REPEAT
FETCH ptname INTO @tname;
INSERT INTO combt SELECT id,date_time_destroy,attr_orig_ipv4_dst,attr_orig_port_dst FROM @tname;
UNTIL no_more_departments
END REPEAT;
CLOSE ptname;END $$DELIMITER ;
Script line: 4 Unknown system variable 'no_more_departments'
换成了done也不行,@-@晕了,求大神指点