Tengo un MySQLvariableejecutar la consulta mysql presente en la variable
@query = CONCAT('INSERT INTO history VALUES (',1,',',50,',UTC_TIMESTAMP()');
quiero ejecutar la instrucción de inserción presente en la variable.
Tengo un MySQLvariableejecutar la consulta mysql presente en la variable
@query = CONCAT('INSERT INTO history VALUES (',1,',',50,',UTC_TIMESTAMP()');
quiero ejecutar la instrucción de inserción presente en la variable.
primero debe preparar la declaración utilizando PREPARE
y luego usar EXECUTE
Ver aquí: http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html
Algo así como:
SET @query = CONCAT("INSERT INTO history VALUES (",1,",",50,",UTC_TIMESTAMP()");
PREPARE stmt1 FROM @query;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
Recibí este error # 1064 - Tiene un error en la sintaxis SQL; revise el manual que corresponde a su versión del servidor MySQL para la sintaxis correcta para usar cerca de 'EXECUTE stmt_name' en la línea 2 – Avinash
Pruebe mi edición, debería estar bien. – mattytommo
Gracias @mattytommo. – Avinash
Set @query = CONCAT("INSERT INTO history VALUES (",1,",",50,",UTC_TIMESTAMP()");
y luego
PREPARE stmt_name FROM @query
y al fin
EXECUTE stmt_name
quitar el CONCAT(), que no está haciendo nada, excepto generará un error, ya que está tratando de concatenar una cadena con nada más.
En realidad está concatenando 5 elementos, no habrá ningún error => tu respuesta es mala -> no respondas las preguntas ya respondidas - mira la sección 'nueva' y muestra tus habilidades :) – Toumash
respuesta ilógica. –
try preparado declaración –
Por favor, dame el ejemplo – Avinash
ver mi respuesta, creo que va a funcionar –