这在驱赶我香蕉。无论如何,我不是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)。
明月笑刀无情