我尝试通过使用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不是 存在或有意想不到的结构。而是使用瞬态统计数据。
答案 0 :(得分:0)
我能够按照以下4个步骤解决问题。
1)首先,我在phpmyadmin中备份了我的表作为sql导入脚本。
2)按照以下解决方案链接中的说明,解决了表空间问题。
3)然后我再次在phpmyadmin中运行sql import script / trigger创建脚本来创建,填充表格,并重新创建我的触发器。
4)最后,我测试了一个更新并让它将更新的记录插入到日志中。
解决方案链接 - WAMP Solution for TableSpace Issue