0

我的 Windows 机器上有一个 MYSQL 数据库,Linux 服务器上有另一个类似的设置。虽然我在 Windows 设置上执行非常基本的更新/删除/删除查询没有问题,但在 Linux 服务器上运行时我的查询挂起。Windows机器上的MYSQL版本是5.1.42,Linux上是5.6.5-m8,而且更新的挂起不限于单个表。我的数据库中有 4-5 个交叉引用表,此更新/删除/删除正在挂起。更新/删除/删除虽然适用于其他不相关的表。在 Linux 上,首先,我只是简单地获取从我的 Windows 机器生成的转储(没有插入)。其次,我运行一个插入语句 ( insert into flat (FLATID, BLOCKNO, FLATNO) Values (1, 'B1','F1');)。第三,我在 table() 上运行更新UPDATE FLAT SET FLATNO='F2';,它挂起。平表说明如下:

+----------------------+--------------+------+-----+---------+----------------+
| Field                | Type         | Null | Key | Default | Extra          |
+----------------------+--------------+------+-----+---------+----------------+
| FLATID               | bigint(20)   | NO   | PRI | NULL    | auto_increment |
||BLOCKNO              | varchar(20)  | NO   |     | NULL    |                |
| FLATNO               | varchar(10)  | NO   |     | NULL    |                |
||col_COLID    | int(11)      | YES  | MUL | NULL    |                |
| famID_FAMID    | bigint(20)   | YES  | MUL | NULL    |                |
| | allotID_ALLOTID | bigint(20)   | YES  | MUL | NULL    |                |
|+----------------------+--------------+------+-----+---------+----------------+
4

1 回答 1

0

在尝试了几乎所有东西(包括使用 INNODB 变量)之后,我最终尝试从平面表中删除参考 allotID_ALLOTID。ALLOTMENT 表引用了 FLAT 表也引用的 FAMILY 表。从两个平面家庭表中删除 allotID_ALLOTID 有效。

于 2013-03-25T08:13:15.770 回答