我正在运行以下查询:
变量
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;
Sample
SET @sql = CONCAT( 'INSERT INTO `', @tgt, '` (SELECT ', @cols, ' FROM `', @src, '`);' );
PREPARE stm FROM @sql;
EXECUTE stm;
它适用于小桌子,我可以将这个@cols 用于多种目的。但是,它停止处理大型表(大量字段)。我注意到它在 1024 个字符处中断。它忽略 LIMIT。有没有办法获得长度超过 1024 个字符的变量或解决此问题的方法?
极限在于结果GROUP_CONCAT()
。您可以通过以下方式更改此设置:
SET group_concat_max_len = 10000
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)