MySQL列给出插入/更新错误

时间:2013-10-10 14:53:32

标签: 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';

2 个答案:

答案 0 :(得分:2)

答案与触发器有关。我们的数据库上的触发器都是使用仅为应用程序存在的MySQL用户以编程方式创建的。出于某种原因,AFTER INSERT和AFTER UPDATE触发器已被修改,因此DEFINER是root而不是应用程序用户。

将DEFINER更改为应用程序用户,一切正常。

答案 1 :(得分:1)

我猜这是巴马尔提到的触发问题。看看这里: MySQL Error 1054: Unknown column in 'field list' on INSERT

此外,如果entity_id是主键,您可能希望在一个语句中插入两个值(entity_tableentity_id)。否则,该表将不会进行插入。

我不知道,如果这会引起这样的错误。