sql >> Databasteknik >  >> RDS >> Mysql

MySQL lagrad procedur som accepterar sträng med flera parametrar

Du måste ändra VARCHAR-storleken till dess maximala värde (eller ett lägre signifikant värde).

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 ;

Observera dock att gränsen är lägre om du använder en multi-byte teckenuppsättning:

VARCHAR(21844) CHARACTER SET utf8

Som du kan se här .



  1. Hur man tömmer en MySQL-databas

  2. MySQL:Hur hämtar man en slumpmässig rad eller flera slumpmässiga rader?

  3. java-app, tråden hänger sig efter att MySQL-anslutningen dödats

  4. MariaDB JSON_REPLACE() Förklarad