如何更改表列名称的前缀?

时间:2011-09-29 15:14:59

标签: php mysql sql phpmyadmin

我有一张如下表格,

Field           Type            Collation           Attributes  Null    Default

cde_id          int(10)         No                  0                               
cde_title       varchar(255)    utf8_general_ci     Yes         NULL                                 
cde_content     mediumtext      utf8_general_ci     Yes                 NULL                                 
pg_id           varchar(255)    utf8_general_ci     Yes         0                                
cde_created     timestamp                                       No      0000-00-00 00:00:00     

但我想将列名称的前缀从'cde'更改为'code'。

我使用此查询更改名称

ALTER TABLE root_page_embed_codes
CHANGE cde_id code_id int(10)

然后我发现它不够动态,因为列types彼此不同,我也有foreign key - pg_id

我可以使用哪种查询方法更简单地更改前缀?

2 个答案:

答案 0 :(得分:1)

mysql中的int总是一个int。 (10)部分只是MySQL的一个提示,它应该显示多少位数。无论你想要1位数还是10位,它在内部仍将是相同的整数值定义。

你究竟是什么意思,“不够动态”?更改cde_id字段的名称不会以任何方式影响pg_id字段。


跟进:您可以在单个更改查询中链接多个字段更改:

ALTER TABLE root_page_embed_codes CHANGE cde_id code_id int, cde_content code_content mediumtext, cde_created code_created timestamp

然而,你无法指定“新”字段类型,因为MySQL不够智能,无法实现你只是重命名字段而不想改变任何名称。不幸的是,对于字段没有“重命名”,就像桌子和数据库一样。

答案 1 :(得分:0)

当重命名字段时,MySQL不关心依赖FK。正如Luc M建议的那样 - 你应该重新创建FK。

此外,您可以尝试在dbForge Studio for MySQL(快捷版)中重命名此字段:

  1. 在数据库资源管理器中选择字段
  2. 重命名(按F2或在弹出菜单中选择重命名)
  3. 点击消息框中的“重构”按钮。它将重命名所选字段并重新创建所有相关的外键。