MySQL INT类型点击应用后自动清空,无法用于外键问题求助
解决MySQL INT类型设置后变空无法用作外键的问题
实用解决步骤
- 重置可视化工具操作:如果用的是phpMyAdmin这类图形化工具,先关闭当前表的编辑窗口重新打开,重新指定INT类型的具体参数(比如
INT(11)或INT UNSIGNED)后再点击应用;也可以清空浏览器缓存后重试。 - 添加非空约束:外键字段通常需要设置
NOT NULL,编辑字段时勾选该选项,避免应用后字段值变为空。 - 修正默认值设置:不要将INT字段的默认值设为
NULL,可以手动指定默认值(比如0),或者开启非空约束后保留系统默认配置。 - 确认表存储引擎:只有InnoDB引擎支持外键,执行以下SQL查看表引擎:
若为MyISAM,执行SQL修改引擎:SHOW CREATE TABLE 你的表名;ALTER TABLE 你的表名 ENGINE=InnoDB; - 用SQL直接修改(绕过工具bug):如果可视化工具持续异常,直接执行SQL语句修改字段并添加外键:
-- 修改字段为INT非空类型 ALTER TABLE 你的表名 MODIFY COLUMN 字段名 INT NOT NULL; -- 添加外键约束 ALTER TABLE 子表名 ADD CONSTRAINT 外键自定义名称 FOREIGN KEY (子表关联字段) REFERENCES 父表名(父表主键字段);
内容的提问来源于stack exchange,提问作者Yavuz Bilge Ceylan
相关产品推荐
相关产品推荐

