【问题标题】:MySQL & PHPMyadmin - cannot create relationMySQL & PHPMyadmin - 无法创建关系
【发布时间】: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


【解决方案1】:

试试这个

ALTER TABLE tableName ENGINE = InnoDB;

这行得通吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    • 2019-11-27
    • 2012-10-01
    • 2013-01-14
    • 2020-11-22
    相关资源
    最近更新 更多