, IF ( Flow Control Constructs... , , ...
, , , :
DELIMITER
CREATE PROCEDURE myProcedure()
BEGIN
SET @cv = (SELECT `value` FROM `configs` WHERE `name` = 'cvDate');
IF @cv <= STR_TO_DATE("2010/11/10 12:15:00") THEN
ALTER TABLE `feeds` ADD `tone` VARCHAR( 255 ) NOT NULL AFTER `type` ,
ADD `authority` DECIMAL( 2, 1 ) NOT NULL DEFAULT '0.0' AFTER `tone`;
END IF;
UPDATE `configs` SET `value` = NOW() WHERE `name` = "cvDate";
END
DELIMITER ;
, :
CALL myProcedure();
. .
, . , , , ( , )...
, sql ( ):
DELIMITER
CREATE PROCEDURE myInputProcedure(IN updateDate DATETIME, IN sql TEXT)
BEGIN
SET @cv = (SELECT `value` FROM `configs` WHERE `name` = 'cvDate');
IF @cv <= updateDate THEN
PREPARE stmt1 FROM sql;
EXECUTE stmt1;
END IF;
UPDATE `configs` SET `value` = NOW() WHERE `name` = "cvDate";
END
DELIMITER ;
:
@sql = 'ALTER TABLE `feeds` ADD `tone` VARCHAR( 255 ) NOT NULL AFTER `type` ,
ADD `authority` DECIMAL( 2, 1 ) NOT NULL DEFAULT '0.0' AFTER `tone`;';
@date = STR_TO_DATE("2010/11/10 12:15:00");
CALL myInputProcedure(@date, @sql);
( , @sql @date , , )...