ALTER TABLE xxx重命名为xxxx;成功,但表名在navicat没有变化

时间:2017-03-08 06:04:11

标签: mysql sql navicat

我执行此行SQL:

ALTER TABLE dinnertable RENAME TO dinnerTable;

在信息控制台中:

  

[SQL] ALTER TABLE dinnertable RENAME to dinnerTable;
  受影响的行:0
  时间:0.001s

但是在navicat中,你看到下面,表名没有改变:

enter image description here

3 个答案:

答案 0 :(得分:0)

sp_rename 'old_table_name','new_table_name';

答案 1 :(得分:0)

我注意到你已经刷新了navicat。所以这个问题可能是mysql表名称区分大小写的设置问题。请查看此mysql案例的 my.cnf my.ini 文件。更改名为 lower_case_tables_name 的参数。如果您找不到,则需要添加

lower_case_tables_name = 0

下面的[mysqld] 然后重启mysql案例。

答案 2 :(得分:0)

请尝试在重命名声明中添加双引号。

ALTER TABLE "dinnertable" RENAME TO "dinnerTable";
  • 这可能是刷新问题。 请关闭数据库连接或再次连接
  • 区分大小写问题。请尝试添加双引号。
  • 更新使用任何现代IDE导出表格和数据,并通过更新表格名称导入表格。

不带引号的标识符不区分大小写
(请注意这是针对Oracle的,不确定mysql)
Oracle将它们解释为大写。带引号的标识符区分大小写。

通过将名称括在双引号中,可以将以下名称赋予同一名称空间中的不同对象:

"employees"
"Employees"
"EMPLOYEES" 

有关详细信息,请参阅link