创建一个查找字符串值并将 ID 复制到新表的触发器

Posted

技术标签:

【中文标题】创建一个查找字符串值并将 ID 复制到新表的触发器【英文标题】:Create a trigger that finds string value and copies ID to insert to new table 【发布时间】:2022-01-16 01:10:49 【问题描述】:

我正在尝试编写一个 mysql 语句,该语句将在其中复制值为“Dose: Second”的患者 ID 并将其粘贴到我的表 vaccinatedpatients 中。

另外,我想在触发器中实现这一点,以便在表上的每条新记录之后自动更新自身。

对此的任何帮助都会很棒!

CREATE DEFINER=`root`@`localhost` TRIGGER `patient_AFTER_INSERT` AFTER INSERT ON `patient` FOR EACH ROW BEGIN


SELECT @variable = patient_id from patient where vaccine_Dose = 'Dose: Second';
INSERT INTO vaccinatedpatients VALUES(variable);

结束

【问题讨论】:

【参考方案1】:

您可以使用IF cLause 来确定患者是否获得第二剂

DELIMITER &&
CREATE DEFINER=`root`@`localhost` TRIGGER `patient_AFTER_INSERT` AFTER INSERT ON `patient` FOR EACH ROW 
BEGIN
IF NEW.vaccine_Dose = 'Dose: Second' THEN
    INSERT INTO vaccinatedpatients  VALUES (NEW.patinet_id);
END IF;
END&&
DELIMITER ;

DELIMITER 可能不需要。

【讨论】:

以上是关于创建一个查找字符串值并将 ID 复制到新表的触发器的主要内容,如果未能解决你的问题,请参考以下文章

将数据从一个表复制到另一个表

将关联记录复制到新表

在SQL数据库中如何把一个表的同一个字段复制到同一个表的另一个字段?

MySql中,复制旧表结构到新表

特定场景下SQL的优化

MySQL查询结果复制到新表(更新插入)