我正在运行以下查询:
变量
SET @src = 'Test';
SET @tgt = 'Test2';
SET @db = 'Test';
SET @pk = 'ID, MyPk, etc';
SELECT CONCAT( @pk, GROUP_CONCAT(CONCAT( ", ", COLUMN_NAME) SEPARATOR "") )
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = @db
AND TABLE_NAME = @src
INTO @cols;
样本
SET @sql = CONCAT( 'INSERT INTO `', @tgt, '` (SELECT ', @cols, ' FROM `', @src, '`);' );
PREPARE stm FROM @sql;
EXECUTE stm;
它适用于小桌子,我可以将这个@cols 用于多种目的。但是,它停止处理大型表(大量字段)。我注意到它在 1024 个字符处中断。它忽略了限制。是否可以获得超过 1024 个字符的变量或解决此问题的方法?