我在这样的桌子上有一个TRIGGER (更新前):
cardview
当我使用phpMyadmin更新该表的一行时,会抛出此错误:
要更清楚地看到它:
#1442 - 无法更新存储函数/触发器中的表'contact_us',因为它已被调用此存储函数/触发器的语句使用。
我该如何解决问题?
答案 0 :(得分:2)
首先,您根本不需要触发此功能,只需使用带有automatic initialisation的时间戳或日期时间字段。因此,请按以下方式定义updated_at
:
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
如果您因任何原因坚持使用触发器,即使这样也不要使用单独的update
语句来更新同一个表,因此定义了触发器,因为它不会发生(无休止)环)。使用NEW
关键字访问新创建记录的字段以修改字段的内容:
set NEW.updated_at = unix_timestamp();