mysql动态修改列名_mysql – 更改列名的动态过程

我需要创建一个动态过程,以便每当我需要重命名表的一列时,我都会传递所需的参数,并且它会毫无错误地执行.所以IF的验证.

此代码生成的错误如下:

You have an error in your SQL syntax; check the manual that

corresponds to your MySQL server version for the right syntax to use

near ‘IF EXISTS (SELECT * FROM information_schema.columns WHERE

table_name = ‘People” at line 1

DROP PROCEDURE IF EXISTS `change_column_name`;

DELIMITER ;;

CREATE PROCEDURE `change_column_name`(IN tableName VARCHAR(100), IN columnName VARCHAR(100), IN newColumnName VARCHAR(100), IN columnType VARCHAR(20), IN defaultValue VARCHAR(100))

BEGIN

SET @query = CONCAT('IF EXISTS (SELECT * FROM information_schema.columns WHERE table_name = \'', tableName, '\' AND column_name = \'', columnName, '\') THEN

ALTER TABLE \'', tableName, '\' CHANGE COLUMN \'', columnName, '\' \'', newColumnName, '\' ', columnType, ' DEFAULT ', defaultValue, ';

END IF;');

PREPARE stmt1 FROM @query;

EXECUTE stmt1;

DEALLOCATE PREPARE stmt1;

END ;;

DELIMITER ;

CALL `change_column_name`('People', 'Nme', 'Name', 'VARCHAR(50)', 'NULL');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值