我有一个表,它的一些列有一个#符号,例如让我们将表命名为Students,我们有一些列如下:
年级#Final#考试双
计数#Absent int(11)
等...
我想重命名列以删除#,我尝试了这些变体但没有成功:
alter table学生更改成绩#Final#Exam GradeFinalExam double;
alter table学生更改'Grade#Final#Exam'LevelFinalExam double;
alter table学生更改'Grade \ #Final \ #Exam'LevelFinalExam double;
我该怎么做?还有一种更快的方法是从每个列中删除'#'而不必逐个手动重命名它们吗? (该表有许多列和不同的数据类型,这使得重命名过程很难实现自动化)
答案 0 :(得分:1)
使用反引号:
CREATE TABLE test (`Grade#Final#Exam` DOUBLE);
DESCRIBE test;
ALTER TABLE test CHANGE `Grade#Final#Exam` GradeFinalExam DOUBLE;
DESCRIBE test;
此致
詹姆斯
答案 1 :(得分:0)
ALTER TABLE `Students` CHANGE `Grade#Final#Exam` `GradeFinalExam` DOUBLE;
答案 2 :(得分:0)
在MySQL中重命名列的一般语法是ALTER TABLE "name of table" CHANGE "name of old column" "name of new column" "Datatype";
尝试使用反引号来转义列名,而不是使用单引号
答案 3 :(得分:0)
在列名称周围使用引号:
ALTER TABLE学生更改'成绩#Final#Exam'DOUBLE;