如何更改另一个 table 中的外键列类型

How to alter the column type which is a foreign key in another table

我有两个 table 客户和地址

客户 table 有字段

  • cust_id (PK) BINARY(16)
  • address_id (FK) BINARY(16)
  • cust_name VARCHAR(32)

地址 table 有字段

  • address_id (Pk) BINARY(16)
  • address_name VARCHAR(250)

现在我需要将 address_id 的列类型从 BINARY(16) 修改为 CHAR(36) ,但出现错误:

我就是这样做的

ALTER TABLE Addresses MODIFY COLUMN address_id CHAR(16);

ERROR 1025 (HY000): Error on rename of './ShipMileData/#sql-531_240' to './ShipMileData/Addresses' (errno: 150)

Customer table 中删除 FOREIGN KEY 约束。然后 ALTER 在两个 table 中输入列,然后添加回 FK。