mysql - 不在查询中的列的更新语句中的未知列

标签 mysql sql

我正在尝试更新我的表格。我的查询是

'UPDATE mainOrderData SET isInvoiced = ?, invoiceCw = ? WHERE id = ?' 

with params [1, "15", 17408]

该查询来自 Symfony/Doctrine。但我已经尝试过许多变体,该错误不仅仅是拼写错误或语法错误。无论我如何将sql输入数据库都会发生这种情况,这与数据库的结构有关。

我总是收到错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'MainOrderId' in 'where clause'

现在奇怪的是 - 我从未指定过 MainOrderId。我指定了 id,该列存在并且是正确的。

我的数据库到底是怎么改变这个查询的?

这是我的服务器信息:

MySQL 服务器:通过 UNIX 套接字的本地主机 服务器版本:5.5.59 Protokoll 版本:10 贝努策: MySQL-Zeichensatz:UTF-8 Unicode (utf8)

Apache MySQL 客户端版本:mysqlnd 5.0.11-dev - 20120503 - $Id:$ PHP 版本:mysql

我的代码非常简单:

$mainOrderData = $em->getRepository(MainOrderData::class)->find($id);
$woche = date("W");
$mainOrderData->isInvoiced = 1;
$mainOrderData->invoiceCw = $woche;
$em->flush();

我在实体中没有关系,也没有定义更新后或类似的触发器。相关实体没有 MainOrderId,只有未连接到所操作对象的其他实体。

如果我使用手动 SQL 查询,也会发生同样的情况 - 对 id 的任何引用都将更改为 MainOrderId。

最佳答案

如果 table 上有触发器,则可能会发生这种情况。 – 戈登·利诺夫 19 分钟前

就是这样,触发器被隐藏了,我不知道它们在那里。错误消息也没有帮助。

谢谢戈登·利诺夫!

关于mysql - 不在查询中的列的更新语句中的未知列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49732778/

相关文章:

SQL - 根据条件插入多行基于一条记录

sql - 为什么我在 Postgresql psql :/lib64/libpq. so.5 : no version information available (required by psql)? 上不断收到此错误

php - 使用 Javascript 将值插入多个隐藏字段,每个字段都以不同的形式

php - 如何在php中捕获空查询

javascript - 如何处理错误 : ER_DUP_ENTRY: Duplicate entry in nodejs

c# - SQL记录条目,不同的测试用例

php - 用于搜索器的两个非关系表的 SQL 语句

sql - 是否有任何开源查询语言不可知关系存储引擎?

MySQL 存储过程查找最接近匹配的电话通话费率

MySql 存储过程 : Get Last Inserted Id