2016-03-15 51 views
0

,当我使用phpMyAdmin,当我试图从varchar(1000)为varchar(2000)改变我的表的列description我得到一个错误:错误#1064改变VARCHAR列

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=latin1 COLLATE latin1_swedish_ci NOT NULL' at line 1

自动生成从phpMyAdmin的SQL:

ALTER TABLE `showcase` 
CHANGE `description` `description` VARCHAR(2000) CHARSET=latin1 
COLLATE latin1_swedish_ci NOT NULL; 
+0

您使用的是哪个版本的phpMyAdmin? –

+0

@IsaacBennetch版本信息:4.5.3.1 – frosty

回答

0

使用以下查询只改变VARCHAR长度:

ALTER TABLE `showcase` MODIFY `description` VARCHAR(2000); 

如果你想设置的字符集也一样,你可以使用下面的查询(您ALTER命令有效的命令):

ALTER TABLE `showcase` 
CHANGE `description` `description` VARCHAR(2000) CHARACTER SET latin1 
COLLATE latin1_swedish_ci NOT NULL 
+0

工作!想知道为什么phpmyadmin正在生成那么。 – frosty

0

ALTER TABLE语句是不正确的。 CHARSETCOLLATE不能放入列定义中。

参考:

http://dev.mysql.com/doc/refman/5.7/en/alter-table.html http://dev.mysql.com/doc/refman/5.7/en/create-table.html

column_definition: 
    data_type [NOT NULL | NULL] [DEFAULT default_value] 
     [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY] 
     [COMMENT 'string'] 
     [COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}] 
     [STORAGE {DISK|MEMORY|DEFAULT}] 
     [reference_definition] 
    | data_type [GENERATED ALWAYS] AS (expression) 
     [VIRTUAL | STORED] [UNIQUE [KEY]] [COMMENT comment] 
     [NOT NULL | NULL] [[PRIMARY] KEY] 
0

这似乎be a bug这是固定的成功运行4.5.4。我建议你更新你的phpMyAdmin(注意4.6.0将在未来几天内发布),以利用这个和其他修复程序。