Mysql 我无法更改SQL中已存在表的数据类型 createtableemployee( emp_id SMALLINT主键, first_name VARCHAR(20)不为空, 姓氏VARCHAR(20), 出生日期不为空, 性瓦尔查尔(20岁), 工资整数, 超级id INT, 分支id SMALLINT ); 更改表格雇员 ALTER列sex VARCHAR(1);

Mysql 我无法更改SQL中已存在表的数据类型 createtableemployee( emp_id SMALLINT主键, first_name VARCHAR(20)不为空, 姓氏VARCHAR(20), 出生日期不为空, 性瓦尔查尔(20岁), 工资整数, 超级id INT, 分支id SMALLINT ); 更改表格雇员 ALTER列sex VARCHAR(1);,mysql,sql,Mysql,Sql,我是初学者,请对我放松点。我无法理解我做错了什么。 错误: 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第2行“VARCHAR(1)”附近使用的正确语法 在mysql中,您需要使用MODIFY ALTER TABLE Employee MODIFY COLUMN sex VARCHAR(1); 顺便说一下,如果您的表中已经有数据,sex列中任何超过1个字符的值都将被截断,因此在更改列长度之前,您必须注意这一点您在这里标记了SQL Server和MySQL,您真正使用的是什

我是初学者,请对我放松点。我无法理解我做错了什么。 错误:

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第2行“VARCHAR(1)”附近使用的正确语法


在mysql中,您需要使用
MODIFY

ALTER TABLE Employee
MODIFY COLUMN sex VARCHAR(1);

顺便说一下,如果您的表中已经有数据,sex列中任何超过1个字符的值都将被截断,因此在更改列长度之前,您必须注意这一点

您在这里标记了SQL Server和MySQL,您真正使用的是什么RDBMS。以上在SQL Server上运行良好:该列中的现有数据是否比VARCHAR(1)宽?您的语法很好-什么是“无法”实际上意味着什么?失败“您的SQL语法中有一个错误;请查看与您的MySQL服务器版本对应的手册,以了解第2行“VARCHAR(1)”附近使用的正确语法”。这个错误出现了。我正在使用PopSQL。您有T-SQL语法。对于MySQL,它是
modifycolumn