【问题标题】:Alter table to modify column type not terminating更改表以修改未终止的列类型
【发布时间】:2017-02-04 00:17:15
【问题描述】:

我是 SQL 新手,并且在数据库中有一个测试表。我意识到我之前的标题大小分配太小了,所以我想通过运行以下命令将它从 VARCHAR(120) 增加到 VARCHAR(500):

ALTER TABLE test MODIFY title VARCHAR(500);

但该语句永远不会终止,即使该表包含少于 20 个条目。

我错过了什么吗?

编辑:我是基于 these answers 的命令,但我也尝试过:

ALTER TABLE test MODIFY COLUMN title VARCHAR(500);

也不会终止。

【问题讨论】:

    标签: mysql alter-table


    【解决方案1】:

    由于您没有遇到语法错误并且您只有少量行,因此最可能的原因是有另一个进程在此表上持有锁。请连接您打开的任何其他客户端。这可能是 mysql 工作台的其他实例、长时间运行的脚本、django 控制台等等。

    然后再次尝试查询。如果还是不行,试试SHOW OPEN TABLES

    https://dev.mysql.com/doc/refman/5.7/en/show-open-tables.html

    【讨论】:

    • 就是这样,我之前得到的错误的mysql实例:(1406, "Data too long for column 'title' at row 1")首先提示我增加varchar仍然在另一个屏幕上运行。
    【解决方案2】:

    ALTER TABLE 测试 ALTER COLUMN 标题 VARCHAR(500);

    【讨论】:

    • 对不起...刚刚注意到这是 MySQL。这是针对 SQL Server 的
    【解决方案3】:

    试试这个。

    ALTER TABLE test MODIFY COLUMN title VARCHAR(500);

    我认为您缺少 关键字 COLUMN

    【讨论】:

    • COLUMN 的用户是可选的。
    • 感谢您的快速回复,我也尝试了该命令,结果相同。
    猜你喜欢
    • 1970-01-01
    • 2023-01-09
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    • 2011-05-17
    • 2020-12-08
    • 2013-09-12
    相关资源
    最近更新 更多