這在驅趕我香蕉。無論如何,我不是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)。
無法在過程循環中正確聲明變量
寶慕林4294392
2021-04-06 17:26:49