我正在编写一个java web应用程序,其中一些字段在jsp中需要特定字符(删除变音符号)。这个任务并不难用javascript和验证方法在servlet方面,但如果有人(同事也许)忘记了验证,仍然可以添加字符。添加一个检查来验证该字段没有收到某种字符
所以我不知道是否有可能在没有人会像数据库那样经常修改的区域添加验证。
我正在编写一个java web应用程序,其中一些字段在jsp中需要特定字符(删除变音符号)。这个任务并不难用javascript和验证方法在servlet方面,但如果有人(同事也许)忘记了验证,仍然可以添加字符。添加一个检查来验证该字段没有收到某种字符
所以我不知道是否有可能在没有人会像数据库那样经常修改的区域添加验证。
根据您的要求,您可能能够创建一个触发器来监视这个
感谢您的答案。 我以前没有使用触发器,但是在谷歌搜索后我看到了一些例子。也许我需要开始学习存储过程。 我会留下一段时间的问题,看看有人有另一种观点。 – ViROscar
对于关于解决方案的最新答案,我很抱歉。 解决方法是使用比较运算符和'locate(substr,str)'来查找任何字符。例如: 'BEGIN DECLARE msg VARCHAR(100); set msg = concat('Error'); IF LOCATE('ñ',NEW.Name)> 0 THEN signal sqlstate'45000'set message_text = msg; END IF; END ' 与此唯一的问题是字符编码。如果你不使用UTF-8西班牙文,像ñ这样的字符被检测为n。 – ViROscar
你能写的东西,如“我要的东西添加到数据库更新时,自动将删除X字符/插入你的问题一行'或'我想添加一个检查来验证字段不会收到某种类型的字符''? :) – helios
好的。我将使用“我想添加一个检查来验证该字段没有收到某种类型的字符” – ViROscar
似乎那么,一个constrait检查就足够了。你添加一个检查,说“一条记录必须遵守这条规则”,并且规则可以是“这个字符在字符串和其他字符中找不到......并且......”。你可以使用'instr'。或者定义一个特殊的函数来使用(但我不知道那么多)。 http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_instr – helios