繁体   English   中英

Mysql 存储过程创建表

[英]Mysql Stored procedure to create table

请回答

我想在存储过程中创建一个表但是表名存储在一个变量中。 例子

 create procedure ABC 
(
@tablename. // is a parameter in which table       
                                name is stored
)
AS
     BEGIN

Create table @tablename
(
   Colmn one....
   Colmn. two...
    ...............
)

End

但错误显示在哪里
表@tablename

问)我该如何解决这个问题

我想设置一个存储在变量@tablename 中的表名

你不能那样做,你需要准备好的陈述

DROP procedure IF EXISTS `ABC`;

DELIMITER $$

CREATE DEFINER=`root`@`%` PROCEDURE `ABC`(
IN _tablename VARCHAR(50) -- is a parameter in which table       
                            --    name is stored
)
BEGIN
SET @sql = CONCAT('
Create table ',_tablename,'
(
   Colmn1 INT,
   Colmn2 INT

);');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
End$$

DELIMITER ;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM