MySQL基于另一个值输入语句的触发器代码
编辑********** 我无法让下面的代码正常工作,所以我尝试在Workbench上的图表工具中运行它。这是我的密码MySQL基于另一个值输入语句的触发器代码,mysql,Mysql,编辑********** 我无法让下面的代码正常工作,所以我尝试在Workbench上的图表工具中运行它。这是我的密码 CREATE DEFINER = CURRENT_USER TRIGGER `MeasureUp_Data`.`bmd_results_BEFORE_INSERT` BEFORE INSERT ON `bmd_l_arm` FOR EACH ROW BEGIN INSERT INTO bmd_results VALUES ( new.bmd_l_arm_typ CASE ne
CREATE DEFINER = CURRENT_USER TRIGGER `MeasureUp_Data`.`bmd_results_BEFORE_INSERT` BEFORE INSERT ON `bmd_l_arm` FOR EACH ROW
BEGIN
INSERT INTO bmd_results VALUES ( new.bmd_l_arm_typ
CASE new.l_arm_tscore
WHEN < -2.5 THEN 'osteoporosis'
WHEN > -2.4 < -1.0 THEN 'osteopenia'
WHEN > -1.0 THEN 'normal'
ELSE NULL
END);
END
下表列出了数值结果。基本上是spine\u total\u bmd
的值是X
,然后Y
将插入bmd\u sp\u type
,或者,如果spine\u total\u bmd
是A
则插入B
CREATE TABLE IF NOT EXISTS `MeasureUp_Data`.`bmd_spine` (
`access_no` INT NOT NULL,
`spine_total_bmd` INT NULL,
`spine_total_tscore` INT NULL,
`spine_total_zscore` INT NULL,
`spine_total_peakref` INT NULL,
`spine_total_agemat` INT NULL,
PRIMARY KEY (`access_no`),
CONSTRAINT `fk_bmd_spine_access`
FOREIGN KEY (`access_no`)
REFERENCES `MeasureUp_Data`.`bmd_results` (`access_no`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
我们将非常感谢您对此编码noob的任何帮助 您可以编写插入触发器-
CREATE TRIGGER trigger
BEFORE INSERT
ON bmd_spine
FOR EACH ROW
BEGIN
INSERT INTO bmd_results VALUES (
new.access_no,
CASE new.spine_total_bmd
WHEN 1 THEN 'y'
WHEN 2 THEN 'b'
ELSE NULL
END);
END
此外,您可以从表中选择数据并动态更改值,而不存储重复的值。这里是一个例子-
SELECT
access_no,
CASE spine_total_bmd
WHEN 1 THEN 'y'
WHEN 2 THEN 'b'
ELSE NULL
END
FROM
bmd_spine;
谢谢你的快速回复。只是为了澄清我是否需要当1然后“y”在两个值之间时,我可以使用between运算符,还是将其记为当>-2.5然后“y”当-1.5然后“b”等。看看这个主题-。我相信这将有助于澄清这个问题。
SELECT
access_no,
CASE spine_total_bmd
WHEN 1 THEN 'y'
WHEN 2 THEN 'b'
ELSE NULL
END
FROM
bmd_spine;