mysql 表有一个奇怪的问题。我可以在 SELECT 语句中使用“entity_table”列而不会出现任何问题,但它给我带来了任何 UPDATE 或 INSERT 语句的问题。
具体来说,我得到了
"Error Code: 1054. Unknown column 'entity_table' in 'field list'"
该列肯定存在,因为我可以在上面提到的 SELECT 语句中使用它。
我在以下两个语句中得到完全相同的错误:
INSERT INTO `civicrm_note` (`entity_table`) VALUES ('civicrm_relationship')
和
INSERT INTO `civicrm_note` (`entity_id`) VALUES (513576)
这很有趣,因为我什至没有在第二个语句的字段列表中引用 entity_table。
据我所知,数据库中的任何其他表或字段都没有问题。
这个 SELECT 语句工作正常:
SELECT * FROM civinbla.civicrm_note WHERE entity_table = 'civicrm_contact';
最佳答案
答案与触发器有关。我们数据库上的触发器都是使用专为应用程序而存在的 MySQL 用户以编程方式创建的。出于某种原因,AFTER INSERT 和 AFTER UPDATE 触发器已被修改,因此 DEFINER 是 root 而不是应用程序用户。
将 DEFINER 更改为应用程序用户,一切正常。
关于MySQL 列给出插入/更新错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19299195/