我有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