超时删除单个mySQL行?

时间:2018-08-18 12:33:19

标签: mysql

我将组织的网站从使用MS Access转换为使用mySQL来尝试提高性能,但情况变得更糟。

我有一个很小的表,数据少于5,000行,并且我尝试使用以下语句从该表中删除一行:

DELETE FROM club_rosters WHERE player_id = " & tPlayerID & " AND club_id =" & cClubId & ";

此代码从ASP页运行。

错误消息如下:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[MySQL][ODBC 5.1 Driver][mysqld-5.6.40-84.0-56-log]Lost connection to MySQL server during query

/grassroots/clubs/admin/admPlayerMove.asp, line 126

我不明白如何使用主键删除一行(此表中球员和俱乐部的组合是唯一的)会超时。

这是表的定义:

CREATE TABLE club_rosters
(club_id MEDIUMINT NOT NULL,
player_id MEDIUMINT DEFAULT NULL,
roster_type_id MEDIUMINT NOT NULL,
is_in_results TINYINT NOT NULL DEFAULT 1,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP, 
updated_at DATETIME ON UPDATE CURRENT_TIMESTAMP
);

ALTER TABLE club_rosters ADD PRIMARY KEY (club_id, player_id);
ALTER TABLE club_rosters ADD INDEX (roster_type_id);

1 个答案:

答案 0 :(得分:0)

好吧,这很奇怪,我不知道为什么会起作用,但是在第二个等号后插入空格会达到目的。

所以我更改了以下代码:

DELETE FROM club_rosters WHERE player_id = " & tPlayerID & " AND club_id =" & cClubId & ";

收件人:

DELETE FROM club_rosters WHERE player_id = " & tPlayerID & " AND club_id = " & cClubId & ";