select count(*) FROM antecedente_delito WHERE rut_polichile = NEW.rut_polichile
这句话给予de值0,当它应该给我18:/我一直在努力寻找它中的任何错误。
答案 0 :(得分:0)
这是我在SqlFiddle中使用/更改代码模拟的工作解决方案。 http://sqlfiddle.com/#!2/ac2e9/1
答案 1 :(得分:0)
要解决此问题,我会查看您的实际值并验证新的。正在回归你的想法。有时它可能会进行一些修剪或删除特殊字符,尤其是_和%符号可能会在子过程中被剥离。
我将从查询开始:
select top 50 rut_polichile, NEW.rut_plichile FROM antecedente_delito
如果在varbinary检查中添加的问题不明显:
select top 50 cast( rut_polichile as varbinary), cast(NEW.rut_plichile as varbinary) from antecedente_delito
如果该表只有18条记录,那么您应该好好进行上述故障排除,但如果有更多数据,我建议使用where语句中的rowid或其他标识符限制上述结果。
这不是答案,但我希望它可以帮助您找到答案。
答案 2 :(得分:-1)
如果对表列的引用通过触发器定义中的OLD.col_name或NEW.col_name发生,则为主题表的SELECT权限。
但在触发器中我看不到任何触发器定义。所以试试没有新的。
了解更多信息:http://www.sqlinfo.net/mysqldocs/v51/triggers.html或 http://bugs.mysql.com/bug.php?id=31068