2016-09-26 88 views
1

我是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

+0

就是这样,我有更早的错误的mysql实例:'(1406,“数据太长了列'标题'在第1行)”,这促使我增加varchar在第一位仍在另一个屏幕上运行。 –

0

ALTER TABLE test ALTER COLUMN title VARCHAR(500);

+0

对不起...只是指出这是MySQL的。这是用于SQL Server的 – DanielG

-1

试试这个。

ALTER TABLE test MODIFY COLUMN title VARCHAR(500);

我认为你缺少关键字COLUMN

+0

COLUMN的用户是可选的。 – e4c5

+0

感谢您的快速回复,我也试过这个命令,结果相同。 –