我有一张如下表格,
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
。
我可以使用哪种查询方法更简单地更改前缀?
答案 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(快捷版)中重命名此字段: