Nunca intenté usar una sentencia preptarada en un IF, pero de funcionar lo que debes buscar es un resultado por NULL, ya que en MySQL NOT EXISTS se usa para
objetos de base de datos, y no para consultas.
Pruebalo así y veamos
Código MySQL:
Ver original SET @query
= CONCAT('SELECT * FROM ',in_table
,' WHERE ',in_validador_campo
,' = ',in_validador_valor
); PREPARE stmt
FROM @query
; SET @qry
= CONCAT('INSERT INTO ',in_table
,' (',in_campos
,') VALUES (',in_valores
,')'); EXECUTE stmt1;
DEALLOCATE PREPARE stmt;
DEALLOCATE PREPARE stmt1;
Tip:
No te olvides que debes eliminar la sentencia una vez usada, o de lo contrario te dará error si la mandas a ejecución en la misma conexión.