MySQL触发器 - 更新后插入不触发插入

时间:2016-06-13 05:14:06

标签: mysql wamp

我尝试通过使用MySQL从初始表触发更新后将记录插入日志表来记录一个表的更新。

我似乎无法获得下面的代码来导致插入发生。

我需要做什么才能解决问题?

触发代码

     CREATE TRIGGER `issueaim_update` AFTER UPDATE ON `issues`
 FOR EACH ROW INSERT INTO issuehistory 
       SELECT 'update', (select max(revision)+1 from issuehistory where issueid = i.issueid), NOW(), '', IssueID, ProjectID, IssueTitle, Criticality, AssignorID, OwnerID, AltOwnerID, ApproverID, AssignedDate, CompletionDate, DueDate, ECD, ClosedDate, IssueStatement, ClosureCriteria, ClosureStatement, RootCause, CorrectiveAction, IssueResolutionVerification, RejectionJustification, NEW.Category1, Category2, Category3, Category4
        FROM ProjectAIM.issues AS i WHERE IssueID = NEW.IssueID and ProjectID = NEW.ProjectID

错误日志 - 最近记录的错误

  

2016-06-12 21:55:39 10e0 InnoDB:错误:表的表空间   “mysql”。“innodb_table_stats”丢失了。

     

2016-06-12 21:55:39 10e0 InnoDB:错误:获取持久性统计信息   请求表“projectaim”。“问题”但要求的系统   表mysql.innodb_table_stats和mysql.innodb_index_stats不是   存在或有意想不到的结构。而是使用瞬态统计数据。

1 个答案:

答案 0 :(得分:0)

我能够按照以下4个步骤解决问题。

1)首先,我在phpmyadmin中备份了我的表作为sql导入脚本。

2)按照以下解决方案链接中的说明,解决了表空间问题。

3)然后我再次在phpmyadmin中运行sql import script / trigger创建脚本来创建,填充表格,并重新创建我的触发器。

4)最后,我测试了一个更新并让它将更新的记录插入到日志中。

解决方案链接 - WAMP Solution for TableSpace Issue