2016-03-15 70 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將在未來幾天內發佈),以利用這個和其他修復程序。