更改表以修改未终止的列类型
Posted
技术标签:
【中文标题】更改表以修改未终止的列类型【英文标题】: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);
也不会终止。
【问题讨论】:
【参考方案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 的用户是可选的。 感谢您的快速回复,我也尝试了该命令,结果相同。以上是关于更改表以修改未终止的列类型的主要内容,如果未能解决你的问题,请参考以下文章