gpt4 book ai didi

mysql - 重命名mysql数据库中所有表的列

转载 作者:行者123 更新时间:2023-11-29 02:21:06 24 4
gpt4 key购买 nike

我需要为我的数据库中的所有表重命名列。我可以使用此查询获取列列表:

 SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME= <Column Name>;

但实际上我怎么能尽可能简单地重命名它而不写

ALTER TABLE <Table Name >RENAME COLUMN <Old name> to <New Name>;

对于每个表。

我试着写了一个程序:

DELIMITER $$
DROP PROCEDURE IF EXISTS renameColumn $$
CREATE PROCEDURE renameColumn(IN oldName tinytext, IN newName tinytext)
BEGIN
DECLARE @name VARCHAR(255);
DECLARE exit_loop BOOLEAN;
DECLARE tableName_cursor CURSOR FOR SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME=oldName;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET exit_loop = TRUE;
OPEN tableName_cursor;
rename_loop: LOOP
FETCH tableName_cursor @name;
ALTER TABLE @name RENAME COLUMN oldName to newName;
IF exit_loop THEN
LEAVE rename_loop;
END IF;
END LOOP rename_loop;
END $$
DELIMITER;

但是我有以下错误:您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在 '@name VARCHAR(255); 附近使用的正确语法;

声明 exit_loop BOOLEAN;

在第 3 行声明 ta'

你能帮我解决这个问题吗

最佳答案

你可以试试这个。

SELECT CONCAT(
'ALTER TABLE ', TABLE_NAME,
' RENAME COLUMN ', COLUMN_NAME,
' NEW_', COLUMN_NAME,
';') AS rename_script
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'your_db'

关于mysql - 重命名mysql数据库中所有表的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31720311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com