当父母被复制时,MySQL复制子数据

时间:2018-11-23 09:01:14

标签: php mysql triggers parent

我有2个表:bases(父级)和base_formula(子级)。

当复制(创建)父数据时,我需要的是子数据的重复。

这是我的标记:

CREATE TABLE `bases` (
  `base_id_pk` int(11) NOT NULL,
  `base_duplicate` int(11) DEFAULT NULL,
  `base_id` int(11) NOT NULL,
  `base_desc` varchar(40) NOT NULL,
  `base_material` int(11) NOT NULL,
  `base_material_percent` varchar(50) DEFAULT NULL,
  `target_sg` decimal(4,3) NOT NULL,
  `base_material_unit` varchar(4) NOT NULL,
  `cost_per_kg` varchar(20) DEFAULT '0',
  `bulk_base_liquid_id` int(11) DEFAULT NULL,
  `micro_sample` tinyint(4) NOT NULL,
  `base_version` varchar(10) NOT NULL,
  `mod_by` varchar(100) DEFAULT NULL,
  `mod_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `change_reason` varchar(200) DEFAULT NULL,
  `superseeds` varchar(100) DEFAULT NULL,
  `department` varchar(150) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `base_formula` (
  `id` int(11) NOT NULL,
  `base_id` int(11) NOT NULL,
  `raw_material_id` varchar(1120) NOT NULL,
  `percent` decimal(7,4) DEFAULT NULL,
  `dispense` int(11) DEFAULT '1',
  `ignore_step` int(11) DEFAULT NULL,
  `main_ingredient` int(5) NOT NULL DEFAULT '0',
  `cost_of_use` decimal(6,3) DEFAULT NULL,
  `active_flag` int(5) DEFAULT NULL,
  `test` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

base_id上的base_formula是一个基于{。{1}}链接的FK。

我有base_id_pk,这是我要用于与要从中复制子数据的父ID关联的字段。

如果可能,我正在构建触发器base_duplicate。我以前的尝试导致mysql错误:

BEFORE INSERT

0 个答案:

没有答案