0
我想写一个脚本,将从一个大的父表创建较小的表。 (在这种情况下,我没有选择)。但是,这已经有一段时间了,因为我不得不做任何严肃的SQL工作,并且我被可能是愚蠢的东西所困惑......这不会超过第一对线没有炸毁。MySql错误分配变量
DELIMITER $$
BEGIN
SET @I = 1;
SET @CountCol = 'Item Number';
SET @StartPos = 0;
SET @EndPos = 24999;
SET @TotalCount = (SELECT Count(@CountCol) FROM `All_Info`);
SET @HowMany = CEILING(@TotalCount/25000) + 1;
WHILE @I < @HowMany DO
SET @query = CONCAT('CREATE TABLE All_Info_',@I,' AS (SELECT @n := @n + 1 `id`, * FROM All_Info LIMIT ',@StartPos,',',@EndPos,'),PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;)');
PREPARE stmt from @query;
EXECUTE stmt;
SET @I = @I + 1;
SET @StartPos = @EndPos;
SET @EndPos = @EndPos + 25000;
END WHILE;
END$$
我得到的错误是:
[查询1 ERROR]您的SQL语法错误;检查对应于您的MySQL服务器版本的手册,在第2行'SET @I = 1'附近使用正确的语法。
我觉得我正在服用疯狂的药。任何想法我做错了什么?
(注:使用续集Pro作为我的客户,在以某种方式相关的情况下)
你认为这是一个潜在的分号问题吗? – JoshKopen
尽我所知,尽管这是错误停止的地方。我无法理解它。 – tobybot