【发布时间】:2014-05-30 10:37:41
【问题描述】:
好的,所以我有一个包含许多表的数据库,但我特别遇到了两个问题。一种叫做“资产”,结构是这样的:
`assetid` varchar(5) NOT NULL,
`typeid` varchar(2),
`make` varchar(40),
`model` varchar(40),
`serno` varchar(40),
`opsys` varchar(40),
`ownerid` varchar(4)L,
`locid` varchar(4),
`purdate` date,
`insdate` date,
`remdate` date,
`dispdate` date,
`techid` varchar(3)
另一个叫“供应商”:
`suppid` varchar(3) NOT NULL,
`suppname` varchar(40),
`assetid` varchar(5),
`lastpurdate` date,
在“资产”中,我的 PK 是资产 ID。在供应商中,我最初有一个 PK 作为 suppid 和 assetid。但是我无法创建将供应商.assetid 链接到asset.assetid 的关系。我在 PHPMyAdmin 中不允许这样做,所以我从供应商那里删除了assetid,并将 suppid 添加到asset。我想让 suppid 成为资产中的外键,但是当我尝试这样做时,我得到了这个:
#1452 - Cannot add or update a child row: a foreign key constraint fails (`assettracker`.`#sql-15c4_672`, CONSTRAINT `#sql-15c4_672_ibfk_6` FOREIGN KEY (`suppid`) REFERENCES `supplier` (`suppid`) ON DELETE SET NULL ON UPDATE NO ACTION)
为什么我不能这样做?
【问题讨论】:
-
好的,我该如何解决这个问题? Suppid 是供应商的主键(或者至少应该是)。
-
能否添加您尝试运行的命令以添加新密钥?
-
我没有使用命令 - 我正在使用 PHPMyAdmin 中的“关系视图”控制面板
标签: mysql phpmyadmin foreign-keys