MySQL 列给出插入/更新错误

标签 mysql sql-update sql-insert civicrm

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/

相关文章:

mysql - 优化包含 EXISTS 的 MySQL UPDATE 查询的性能

MySQL INSERT [...] SET 不起作用

php - 在 PHP PDO MYSQL 中插入多行的最佳方法是什么?

mysql - 如何在 RDS 副本实例中创建临时表

mysql - 为什么 WinForms ComboBox 选定的文本属性为空?

mysql - sphinx 和一对多关联

MySQL 查找最接近或完全匹配的值与更改查找列

sql - 在 PostgreSQL 中使用关联数组进行批量更新

php - SQL插入行并将插入的自动增量ID复制到另一列

mysql - 在 codeigniter 中编写此 mysql 查询