MySQL:重命名主键列,它是另一个表的foregin键

时间:2017-12-27 09:56:07

标签: python mysql

我在mysql数据库中有一个2表:

RestTemplate

如何重命名人员表PK(personnel_id)?因为它作为资格表的Fk,而我重命名为personnel_id我面临的问题如下:

无法更改列'personnel_id':用于表'mobilemeta.qualification '的外键约束'qualification_ibfk_1'

Personnel:
   personnel_id (PK)
   name
   age


qualification:
  qualification_id (PK)
  personnel_id (FK)
  clg name
  schl name

但我正在使用python 处理这些数据库操作。所以不可能找到它作为外键引用到哪个表,有没有办法动态处理它?<​​/ p>

任何解决方案?

2 个答案:

答案 0 :(得分:0)

你可以按照这样的方式完成它。

选项1:

SET FOREIGN_KEY_CHECKS=0;
<Your first alter command to rename the primary key in "Personnel" table>;
<Your second alter command to change the foreign key in "qualification" table>;
SET FOREIGN_KEY_CHECKS=1;

选项2

或者,你可以

  1. 删除“资格”表的外键
  2. 重命名“人员”表格中的主键
  3. 重新定义外键

答案 1 :(得分:0)

使用alter命令更改列名 并且不需要更改外键或主键。 只需更改名称使用alter命令 ALTER TABLE table_name 修改列名旧名新数据类型