gpt4 book ai didi

mysql - 使用 MySQL Workbench 更改 PK 和 FK 列类型

转载 作者:行者123 更新时间:2023-11-30 00:15:06 24 4
gpt4 key购买 nike

我需要更改一堆 PK 列类型,并使用 MySQL 的 Workbench 来设计我的数据库。

是否可以更改给定表中的 PK 类型,并使所有 FK 类型自动更改?

最佳答案

我执行此操作是为了检查工作台。我创建了表 employeesemployees_hobbies。表employeesPKid_employees,类型为INT(11)employees_hobbies 表具有类型 INT(11)FK id_employees。我尝试将employees表的id_employees中的字段类型更改为CHAR(5),错误如下:

ERROR 1025: Error on rename of './teste/#sql-4aa_10875' to './teste/employees' (errno: 150) SQL Statement: ALTER TABLE teste.employees CHANGE COLUMN id_employees id_employees CHAR(5) NOT NULL

ERROR: Error when running failback script.

错误的意思是(errno: 150)

MySQL error code 150: Foreign key constraint is incorrectly formed

我的表格:

CREATE TABLE `employees` (
`id_employees` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(45) DEFAULT NULL,
`url_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id_employees`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

CREATE TABLE `employees_hobbies` (
`id_employees_hobbies` int(11) NOT NULL AUTO_INCREMENT,
`id_employees` int(11) NOT NULL,
`id_hobbies` int(11) NOT NULL,
PRIMARY KEY (`id_employees_hobbies`),
KEY `fk_employees_hobbies_1_idx` (`id_employees`),
KEY `fk_employees_hobbies_2_idx` (`id_hobbies`),
CONSTRAINT `fk_employees_hobbies_1` FOREIGN KEY (`id_employees`) REFERENCES `employees` (`id_employees`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `fk_employees_hobbies_2` FOREIGN KEY (`id_hobbies`) REFERENCES `hobbies` (`id_hobbies`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

您无法在工作台中执行此操作。

解决方案是生成脚本并解析所有执行交换类型的FK

关于mysql - 使用 MySQL Workbench 更改 PK 和 FK 列类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23717341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com