1

在 OSX 10.8.3 上使用 MySql 5.5.20

我正在使用相同的主要版本(5.5)从另一台服务器恢复 mysql 转储 有一堆表 CREATE 和 INSERT 语句,然后在最后定义了一些触发器。

执行该行时:

/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ 
/*!50003 `TRIGGER delete_po_items AFTER DELETE ON CRM_PURCHASEORDER   
FOR EACH ROW BEGIN  DELETE FROM CRM_PO_ITEM 
 where CRM_PO_ITEM.PURCHASEORDER_ID = OLD.PURCHASEORDER_ID; END */

我得到错误:

Error Code: 1146. Table 'crm.CRM_PURCHASEORDER' doesn't exist`

但是 CRM_PURCHASEORDER 表确实存在。它甚至有大约 2000 行数据。

由于 IP 问题,我无法发布原始转储,并且我没有任何运气来复制最小的测试用例。

任何提示可能导致这种情况?我在 SO 上看到了其他一些类似的帖子,但没有找到适合我的解决方案。

4

2 回答 2

2

这个问题是关于 MySql 中表名和列名的大小写敏感问题,最值得注意的是lower_case_table_names可以为 MySql 服务器实例设置的具有三个可能值的变量!

于 2014-10-10T00:04:05.563 回答
0

我们的团队在这个问题上几乎崩溃了。它最终从导致问题的应用程序中复制/粘贴查询。当我们重新输入查询时,它可以正常工作,但是通过信使应用程序共享查询会导致未确定的行为。

于 2019-08-22T14:41:21.187 回答