create procedure sp_create_tab()
begin
set @sql_t = concat("create table ...");
prepare sql_t from @sql_t;
execute sql_t;
end
需要动态传递参数(表名,字段名,属性)
这里存储过程该怎么写,谢谢

解决方案 »

  1.   

    DROP PROCEDURE if EXISTS proc_create_table;
    CREATE  PROCEDURE proc_create_table(IN  table_name VARCHAR(32))
    BEGIN 
    DECLARE tblname VARCHAR(32);
    DECLARE sql1 VARCHAR(1000);
    SET tblname = CONCAT(table_name);
    set @sql1 = CONCAT("CREATE TABLE `" ,tblname, "` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `username` varchar(255) DEFAULT NULL,   `password` varchar(255) DEFAULT NULL,   PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; ");
    # select sql1;
    PREPARE STMT  from   @sql1;
    EXECUTE STMT;
    DEALLOCATE PREPARE STMT; 
    END;
    主要问题在于,字段的创建