【问题标题】:Timeout Deleting a Single mySQL row?超时删除单个 mySQL 行?
【发布时间】:2018-08-18 12:33:19
【问题描述】:

我将我组织的网站从使用 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);

【问题讨论】:

  • 看起来不像是设计问题,您在查询期间失去了连接。在不使用 ODBC 的情况下尝试相同的查询
  • 您说的是哪个版本的 ASP?另外,有点不清楚这个事实与问题的关系(因为你只是在询问 SQL),所以我现在编辑了那个标签。

标签: mysql


【解决方案1】:

好吧,这很奇怪,我不知道为什么会这样,但是在第二个等号之后插入一个空格就可以了。

所以我将代码从:

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

收件人:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多