这让我发疯。我不知道此查询出了什么问题?
mysql> ALTER TABLE `mydb.persons` MODIFY COLUMN `name` VARCHAR;
ERROR 1064 (42000): 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 '' at line 1
答案 0 :(得分:0)
...the right syntax to use near '...'
错误消息中的引号中包含的信息是解析器遇到的意外情况。当它是一个空字符串''
时,这意味着该错误是该查询的过早结尾-直到结尾的所有内容都被毫无问题地解析了,但是查询不可能在此结束,并且仍然有效。一个更明显的示例是查询SELECT * FROM;
,它将返回完全相同的错误。 (尾随的分号(如果存在)此时已被丢弃,因此它不会出现在此错误消息中。)
VARCHAR
数据类型要求您在括号中指定列的最大字符长度。例如,如果您希望一列的最大长度为96个字符:
mysql> ALTER TABLE `mydb.persons` MODIFY COLUMN `name` VARCHAR(96);
CHAR
和VARCHAR
类型的声明长度表示您要存储的最大字符数。例如,CHAR(30)
最多可以容纳30个字符。