这在驱赶我香蕉。无论如何,我不是mysql专家。我的目标是向表中添加大量列。我已经尝试了几种方法,并且在DECLARE @FooA NVARCHAR(MAX);上使过程阻塞了。不知道为什么。我感谢任何指示...USE mydatabase;DELIMITER $$DROP PROCEDURE IF EXISTS RepeatLoopProc$$CREATE PROCEDURE RepeatLoopProc()BEGIN DECLARE x INT; DECLARE sn VARCHAR(30); DECLARE dr VARCHAR(48); DECLARE @FooA NVARCHAR(MAX); SET x = 0; WHILE (x <= 150) DO SET sn = CONCAT('drivesn_', x); SET dr = CONCAT('driveinf_', x); SET x = x + 1; SET @FooA = 'ALTER TABLE DRIVE_MASTER ADD ' + sn + ' VARCHAR(30), ADD ' + dr + ' VARCHAR(48)'; EXEC sp_executesql @FooA; END WHILE;END$$DELIMITER ;当我这样做时,我得到:ERROR 1064 (42000): 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 '@FooA NVARCHAR(MAX);我的前额从撞到我的桌子上变得扁平了。最终目标是将驱动器n_0,驱动器inf_0,驱动器n_1,驱动器inf_1等列一直添加到驱动器n_150和驱动器inf_150。分别为每个键入VARCHAR(30)和VARCHAR(48)。
2 回答
明月笑刀无情
TA贡献1828条经验 获得超4个赞
我已经有多个表。基本上,我使用它来分类主机中的驱动器序列号。主机最多可以有150个驱动器。其他表包含网络接口信息(macaddrs等)。所有这些都由一个共同的索引值捆绑在一起。对于具有150个磁盘驱动器的系统,除了150列之外,我看不到其他方法。要么那个,要么我错过了一个基本概念。
- 2 回答
- 0 关注
- 311 浏览
添加回答
举报
0/150
提交
取消