Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将mysql数据库中表的所有列更改为大写_Mysql_Ubuntu 14.04 - Fatal编程技术网

将mysql数据库中表的所有列更改为大写

将mysql数据库中表的所有列更改为大写,mysql,ubuntu-14.04,Mysql,Ubuntu 14.04,我使用上面的代码将列名转换为大写,但代码在CONCAT'ALTER TABLE',tblname',CHANGE column',oldname',@newname'中给出了错误160442000。有人能帮我解决这个问题吗 先发制人 DELIMITER // DROP PROCEDURE IF EXISTS uppercasecol // CREATE PROCEDURE uppercasecol(IN tblname VARCHAR(200)) BEGIN DECLARE done

我使用上面的代码将列名转换为大写,但代码在CONCAT'ALTER TABLE',tblname',CHANGE column',oldname',@newname'中给出了错误160442000。有人能帮我解决这个问题吗

先发制人

DELIMITER // 
DROP PROCEDURE IF EXISTS uppercasecol // 

CREATE PROCEDURE uppercasecol(IN tblname VARCHAR(200)) 
BEGIN 
DECLARE done INT DEFAULT 0; 
DECLARE oldname VARCHAR(200); 
DECLARE cur CURSOR FOR SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA='ADM01' AND TABLE_NAME=tblname; 
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; 
OPEN cur; 
REPEAT 
FETCH cur INTO oldname; 
SET @newname = UPPER(oldname); 
#IF newname equals to oldname, do nothing; 
#select 'a' <> 'A'; -> 0 
#select 'a' <> BINARY 'A'; -> 1 
SET @isNotSame = @newname <> BINARY oldname; 
IF NOT done && @isNotSame THEN 
SET @SQL = CONCAT('ALTER TABLE `',tblname,'` CHANGE COLUMN `',oldname,'` @newname'); 
PREPARE tmpstmt FROM @SQL; 
EXECUTE tmpstmt; 
DEALLOCATE PREPARE tmpstmt; 
END IF; 
UNTIL done END REPEAT; 
CLOSE cur; 
END // 
DELIMITER ;

CALL uppercasecol('USER_MODULE');
试试这个

试试这个

ALTER TABLE `tablename` CHANGE COLUMN `oldname` `newname` datatype(size) NOT NULL;
试试这个

ALTER TABLE `tablename` CHANGE COLUMN `oldname` `newname` datatype(size) NOT NULL;