mysql存储过程支持用表作为参数吗
mysql存储过程支持用表作为参数。
这个问题在MySQL 5.0以前非常麻烦,但是在MySQL 5.0.13版之后,由于引入了PREPARE语句,一切变得简单了。
例子如下(已验证):
DROP?PROCEDURE?IF?EXISTS?`newtable`;CREATE?PROCEDURE?`newtable`(IN?tname?varchar(64))
BEGIN
SET?@sqlcmd?=?CONCAT('CREATE?TABLE?',?tname,?'?(id?int?NOT?NULL?AUTO_INCREMENT,?name?varchar(64)?DEFAULT?NULL,?PRIMARY?KEY?(`id`))');
PREPARE?stmt?FROM?@sqlcmd;
EXECUTE?stmt;
DEALLOCATE?PREPARE?stmt;
END;
call?newtable('abc');