MySQL程序的参数类型?

| 我正在为基于Web的应用程序编写一些MySQL过程,而令我印象深刻的是根本没有参数的类型检查。 例如,如果我有以下内容:
CREATE PROCEDURE foo(n CHAR(4))
我可以随心所欲地调用它,它将接受它并且只接受前四个字​​符。但是,如果我想做这样的事情:
use base;
DELIMITER $$
DROP PROCEDURE IF EXISTS open $$

CREATE PROCEDURE open(n INT)
  BEGIN
    SELECT * FROM prod_charts LIMIT n;
  END $$

DELIMITER ;
当使用非整数参数调用时,它将崩溃。并且没有反馈:当从php调用时,我什么也没得到,当我在phpMyAdmin中尝试它时,我将被发送回首页。 所以我的问题是:如何使它更安全?有没有办法在这些过程中检查变量的类型?     
已邀请:
不幸的是,我不知道直接在mySQL中执行此操作的方法。在其他RDMS中(例如MS SQL),可以使用诸如isNumeric()之类的函数。 在mySQL中创建以下函数,并使用它检查传入的值是否为数字。
CREATE FUNCTION ISNUMERIC(myVal VARCHAR(1024)) 
RETURNS TINYINT(1) DETERMINISTIC 
RETURN myVal REGEXP \'^(-|\\\\+)?([0-9]+\\\\.[0-9]*|[0-9]*\\\\.[0-9]+|[0-9]+)$\'; 
那应该涵盖大多数(如果不是全部)可能性。     

要回复问题请先登录注册