mysql - 使用循环向 mySQL 表添加列

标签 mysql loops alter sequential

我对 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/

相关文章:

java - Android 应用程序在登录和注册时崩溃

c - 为什么这个for循环不执行?

c - 试图在 C 中跳过 1 次 do/while 循环

c - 当它应该通过时循环打印 (C)

mysql - 对于超过 4000 万行的表,如何向 MySQL 中的 ENUM 类型列添加更多成员?

mysql - 通过服务器连接到 MySQL 数据库

mysql - 按列值动态表连接

javascript - 使用 Ajax 从 PHP 获取 Echo 到 Div

MySql - 如何选择发生警告的行?

php - mysql问题与添加列