更改MySQL表的表结构

更改MySQL表的表结构,mysql,alter,Mysql,Alter,重新访问MySQL,并尝试更改表的结构。我想将两行从varchar(30)更改为更高 我已经在谷歌上搜索了它,并尝试了看似正确的语句,但我发现一个语法错误: ALTER TABLE 'compdetails' CHANGE 'compName' varchar(60) not null; 然而,这个语句给了我一个语法错误。我也尝试过在表/列名中不使用“”而没有任何运气 “错误2064(42000):您有一个错误 在SQL语法中……” 有人能唤起我的记忆吗?就这样: ALTER TABLE 'c

重新访问MySQL,并尝试更改表的结构。我想将两行从varchar(30)更改为更高

我已经在谷歌上搜索了它,并尝试了看似正确的语句,但我发现一个语法错误:

ALTER TABLE 'compdetails' CHANGE 'compName' varchar(60) not null;
然而,这个语句给了我一个语法错误。我也尝试过在表/列名中不使用“”而没有任何运气

“错误2064(42000):您有一个错误 在SQL语法中……”

有人能唤起我的记忆吗?

就这样:

ALTER TABLE 'compdetails' CHANGE compName compName varchar(60) not null;
仅此而已:

ALTER TABLE 'compdetails' CHANGE compName compName varchar(60) not null;

首先,如果要引用表名,则需要使用反勾号而不是单引号。单引号仅用于字符串文字

其次,当您想要重命名列时,使用CHANGE,而MODIFY允许您在不重命名列的情况下更改列定义。因此,您应该使用:

ALTER TABLE compdetails MODIFY compName varchar(60) NOT NULL;

这是一个非常好的在线版本,我鼓励你在遇到语法问题时检查它。

首先,如果你想引用表名,那么你需要使用反勾号而不是单引号。单引号仅用于字符串文字

其次,当您想要重命名列时,使用CHANGE,而MODIFY允许您在不重命名列的情况下更改列定义。因此,您应该使用:

ALTER TABLE compdetails MODIFY compName varchar(60) NOT NULL;

在线报告非常好,我鼓励您在遇到语法问题时进行检查。

提问者是否也应记住,在发出此ALTER命令之前,compName中的数据不得包含任何空值?表名或列名不能使用单引号。如果列名和表名需要引号,则应使用反勾号。null将自动转换为空字符串,如果不是,则在“not null”之后添加默认值“”提问者是否应该记住,在发出ALTER命令之前,compName中的数据不能包含任何空值?单引号不能用于表名或列名。如果列名和表名需要引号,则应使用反勾号。null将自动转换为空字符串,如果不是,则在“not null”之后添加默认“”即可。