0
select count(*)  FROM antecedente_delito WHERE rut_polichile = NEW.rut_polichile

该语句给出的值是 0,而它应该给我 18:/ 我一直在努力寻找其中的任何错误。

4

3 回答 3

0

为了解决这个问题,我会查看您的实际值并验证 NEW。正在返回您认为应有的内容。有时它可能会进行一些修剪或删除特殊字符,尤其是 _ 和 % 符号可能会在子过程中被剥离。

我将从查询开始:

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 或其他标识符来限制上述结果。

这不是答案,但我希望它可以帮助您找到答案。

于 2012-12-11T00:37:47.220 回答
0

这是我在 SqlFiddle 中使用/更改您的代码模拟的工作解决方案。 http://sqlfiddle.com/#!2/ac2e9/1

于 2012-11-21T07:15:43.230 回答
-1

如果对表列的引用通过触发器定义中的 OLD.col_name 或 NEW.col_name 发生,则为主题表的 SELECT 权限。

but in your trigger i can't see any trigger definition. so try without NEW.

for more info: http://www.sqlinfo.net/mysqldocs/v51/triggers.html or http://bugs.mysql.com/bug.php?id=31068

于 2012-11-21T06:30:52.790 回答