我对 mySQL 还很陌生。假设我要向表中添加列,如下所示:
ALTER TABLE table ADD client_input_2.0_1 LONGTEXT;
我想添加一些类似的连续列,即
ALTER TABLE table ADD client_input_2.0_2 LONGTEXT;
ALTER TABLE table ADD client_input_2.0_3 LONGTEXT;
ALTER TABLE table ADD client_input_2.0_4 LONGTEXT;
等等。一直到足够大的数字,如果我手动执行此操作,这将需要相当长的时间。就我而言,2.0 代表一个部分/部分,最后一个数字代表一个问题编号,根据部分的不同,它可能是 1-50 左右的任何位置,因此手动创建此表将花费大量时间。
有没有办法让我在脚本中使用某种循环来执行此操作,每次增加 col# ?
非常感谢,
最佳答案
编辑后的代码
尝试使用存储过程
DELIMITER $$
DROP PROCEDURE IF EXISTS RepeatLoopProc$$
CREATE PROCEDURE RepeatLoopProc()
BEGIN
DECLARE x INT;
DECLARE str VARCHAR(255);
Declare @sql nvarchar(4000);
SET x = 0;
REPEAT
SET str = '';
SET str = CONCAT(str,'client_input_2.0_',x);
SET x = x + 1;
set @sql='ALTER TABLE table_name ADD '+ str +' column-definition';
exec sp_executesql @sql;
UNTIL x > 50
END REPEAT;
END$$
DELIMITER ;
希望这对您有帮助。
关于mysql - 使用循环向 mySQL 表添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14313418/