mySQL中的动态视图替换

mySQL中的动态视图替换,mysql,database,dynamic,views,Mysql,Database,Dynamic,Views,我试图在mySQL中创建一个视图,当用户输入特定值(woeid)时,该视图将被创建或更新。我已尝试使用以下存储过程执行此操作: DELIMITER $$ CREATE DEFINER=`root`@`%` PROCEDURE `sp_getChildren`( IN woeid INTEGER(15) ) BEGIN CREATE OR REPLACE VIEW `test`.`children` AS SELECT * FROM geoplane

我试图在mySQL中创建一个视图,当用户输入特定值(woeid)时,该视图将被创建或更新。我已尝试使用以下存储过程执行此操作:

DELIMITER $$

CREATE DEFINER=`root`@`%` PROCEDURE `sp_getChildren`(
    IN woeid INTEGER(15)
)
BEGIN
    CREATE  OR REPLACE VIEW `test`.`children` 
    AS
    SELECT * 
    FROM geoplanet_places gp
    WHERE gp.parent_id = woeid;
END
在mySQL的当前版本中,上述内容(或者我已经读过)是不可能的,因为存储例程中的视图不能引用例程参数或局部变量。我的问题是,原因是什么,是否有任何有效的替代方案。我真的不想创建一个新表并让过程更新所述表

任何帮助都将不胜感激,谢谢

尝试使用-

CREATE PROCEDURE sp_getChildren(IN woeid INTEGER(15))
BEGIN
  SET @sql = CONCAT('CREATE  OR REPLACE VIEW `test`.`children` AS SELECT * FROM geoplanet_places gp WHERE gp.parent_id = ', woeid);
  PREPARE stmt FROM @sql;
  EXECUTE stmt;
  DEALLOCATE PREPARE stmt;
END