DELIMITER $$DROP PROCEDURE IF EXISTS `test`.`p2` $$
CREATE DEFINER=`root`@`%` PROCEDURE `p2`(in tableName varchar(45))
BEGIN
SET @sqlString=CONCAT('
CREATE TRIGGER testref
BEFORE INSERT ON ',tableName,'
FOR EACH ROW
BEGIN
      Set new.Name=''aa'';
END'); PREPARE STMT FROM @sqlString;
  execute STMT;
DEALLOCATE PREPARE STMT;END $$DELIMITER ;调用时出现如下错误:
This command is not supported in the prepared statement protocol yet
是不是存储过程中不能创建触发器???

解决方案 »

  1.   

    当然,在SQL SERVER中也是不行的
      

  2.   

    至少在MYSQL中是不行的,与商业数据库还是有差距的
      

  3.   

    The following SQL statements can be used in prepared statements: CREATE TABLE, DELETE, DO, INSERT, REPLACE, SELECT, SET, UPDATE, and most SHOW statements. supported. ANALYZE TABLE, OPTIMIZE TABLE, and REPAIR TABLE are supported as of MySQL 5.0.23. Other statements are not yet supported. 
      

  4.   

    mysql不可以这样的,但sql sqlserver 没问题