sto facendo funzionare la seguente domanda:MYSQL: come definire o ottenere variabili stringa LONG
Variabili
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;
Esempio
SET @sql = CONCAT('INSERT INTO `', @tgt, '` (SELECT ', @cols, ' FROM `', @src, '`);');
PREPARE stm FROM @sql;
EXECUTE stm;
funziona ... con tavolini e io può usare questo @cols per molteplici scopi. Tuttavia, smette di funzionare con tabelle di grandi dimensioni (grandi quantità di campi). Ho notato che si rompe a 1024 caratteri. Ignora LIMIT. C'è via per ottenere una variabile più lunga di 1024 caratteri o un modo per aggirare questo problema?
vedere [questa domanda] (http://stackoverflow.com/questions/12294955/storage-limits-of-mysql-user-defined-variables) sui limiti di archiviazione delle variabili definite dall'utente MySQL –
La risposta dice che le stringhe possono contenere 16 MB, quindi non spiega perché si sta tagliando a 1K. – Barmar
Cosa succede se si esegue semplicemente 'SELECT @ sql'? Forse il limite è sulla dimensione delle istruzioni preparate, non sulla dimensione della stringa – Barmar