【问题标题】:MYSQL How to update child table value with foreign key while insert data based on parent tableMYSQL如何在基于父表插入数据时使用外键更新子表值
【发布时间】:2017-12-10 03:38:50
【问题描述】:

我有 2 个表,一个父表和一个子表。子表具有父表的外键。我已成功创建外键。但是如何在我只插入 'id_parent' 时根据父表自动更新字段 'nama' ? 我只试过:

INSERT INTO child (id_parent) values (1)

但字段“名称”的值仍为 NULL

这是我的桌子:

CREATE TABLE `child` (
  `id` int(6) NOT NULL AUTO_INCREMENT,
  `id_parent` int(6) DEFAULT NULL,
  `nama` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `aa` (`nama`,`id_parent`),
  CONSTRAINT `aa` FOREIGN KEY (`nama`, `id_parent`) REFERENCES `parent` (`nama`, `id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=armscii8;

-- ----------------------------
-- Table structure for parent
-- ----------------------------
CREATE TABLE `parent` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `nama` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `nama` (`nama`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=armscii8;

父表有这样的数据

INSERT INTO `parent` VALUES ('4', 'asa');
INSERT INTO `parent` VALUES ('1', 'batman');
INSERT INTO `parent` VALUES ('3', 'goku');
INSERT INTO `parent` VALUES ('2', 'robin');
INSERT INTO `parent` VALUES ('5', 'usu');

【问题讨论】:

    标签: mysql


    【解决方案1】:

    检查这一行:

    KEY `aa` (`nama`,`id_parent`),
      CONSTRAINT `aa` FOREIGN KEY (`nama`, `id_parent`) REFERENCES `parent` (`nama`, `id`)
    

    在这里,您在两列上创建了foreign key 关系,即parentnamaid)。在这种情况下,您只能在已在父表中的子表中插入 那些组合 值。请记住,这里的外键是通过组合两列而不是单列来实现的。

    【讨论】:

    • 我对外键还是不太了解。那么如何自动更新同一张表上的另一个字段,只根据另一个表插入一个字段呢?
    • 检查这个:mysqltutorial.org/mysql-foreign-key,如果你还有问题,我会解释给你。
    【解决方案2】:

    在我的情况下,我的子表中有一个 Location TransId 列。我已经从父 ti 子表列更新了位置名称。我完成了以下操作

    更新 表_A 放 Table_A.CityName = Table_B.LocationDesc

    来自

    <ParentTable> AS Table_A
    INNER JOIN <ChildTable> AS Table_B
        ON Table_A.CityTransID = Table_B.TransID
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多