Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Procedimento armazenado do MySQL que aceita string com vários parâmetros


Você precisa alterar o tamanho do VARCHAR para seu valor máximo (ou um valor menor significativo).
DELIMITER //
CREATE PROCEDURE deleteObjectTypes(IN p_type VARCHAR(65535))
BEGIN
    SET @query = CONCAT ('DELETE FROM object WHERE Type NOT IN (',p_type,')');
    PREPARE stmt FROM @query;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
END //
DELIMITER ;

No entanto, observe que o limite é menor se você usar um conjunto de caracteres de vários bytes:
VARCHAR(21844) CHARACTER SET utf8

Como visto aqui .