RT比如我想在函数体中定义创建表的语句,调用是给表名就能创建呢????

解决方案 »

  1.   

    在UDF中不能使用动态语句,类似
    SET @RR=CONCAT('CREATE TABLE ',DD,'(ID INT)');
    PREPARE DD1 FROM @RR;
    EXECUTE DD1;
      

  2.   

    用SP可以
    DELIMITER $$CREATE PROCEDURE `testa`.`dda`(dd VARCHAR(10))
           BEGIN
    SET @RR=CONCAT('CREATE TABLE ',DD,'(ID INT)');
    PREPARE DD1 FROM @RR;
    EXECUTE DD1;
        END$$DELIMITER ;
      

  3.   

    哦,UDF 和SP 是什么啊?
      

  4.   

    UDF:自定义函数
    SP:存储过程
      

  5.   

    你在MYSQL中测试一下就知道,MYSQL的限制
      

  6.   

    MYSQL是开源的,估计没有完善
      

  7.   

    每一种数据库都有它的一些限制。MYSQL中无法对表名是变量来进行SQL语句的操作。只能通过 PREPARE / EXECUTE  来实现。