Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Gespeicherte MySQL-Prozedur, die Zeichenfolgen mit mehreren Parametern akzeptiert

Sie müssen die VARCHAR-Größe auf ihren Maximalwert (oder einen niedrigeren signifikanten Wert) ändern.

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 ;

Beachten Sie jedoch, dass das Limit niedriger ist, wenn Sie einen Multi-Byte-Zeichensatz verwenden:

VARCHAR(21844) CHARACTER SET utf8

Wie hier zu sehen ist .