我试图设计一个数据库结构为我的家庭预算应用程序在php。在设置外键时,我遇到了一个问题。
我有三张table:
日志(id、日期、事务类型id、类别id、描述、值、isforecast)
类别(id,categoryname)
transactiontype(id,transactiontypename)
日志-主预算记录
category—日志记录的固定类别列表
transactiontype—目前只保存两个记录:支出、收入
我为trantypeid设置了外键,没有失败。尝试通过以下方式对categoryid执行相同操作时:
ALTER TABLE `log` ADD CONSTRAINT `fk_log_category` FOREIGN KEY (`categoryID`) REFERENCES `category`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
我收到以下错误:
1452-无法添加或更新子行:外键约束失败(budget.#sql-1aac_,constraint fkŠu logŠcategory外键(categoryid)引用类别(id))
我在innodb中设置了所有的表引擎,所有相关的列都设置了完全相同的数据类型。
1条答案
按热度按时间uujelgoq1#
很可能你的电脑里有记录
log
谁的表categoryID
不存在于cateogry
table。在创建外键之前,需要更新或删除这些记录。您可以使用以下查询查找有问题的记录: