挑战电晕作为练习

问题描述

我正在接受关于电晕的挑战作为练习练习,没什么复杂的。

此时我在 'person' 表上创建了一个 before 触发器:有 2 个存储过程

> CREATE DEFINER=`root`@`localhost` TRIGGER `person_BEFORE_INSERT`
> BEFORE INSERT ON `person` FOR EACH ROW
> BEGIN        
>    call pr_checkCitizenship(new.citizenship);
>    call pr_isolated(new.isolation_type,new.stateFrom);
>  `END

一个按预期工作,防止插入不是来自塞尔维亚的人(bs 挑战,可能是另一个公民身份,没关系)

>CREATE PROCEDURE `pr_checkCitizenship`(country_cs varchar(40))
> BEGIN
>   if country_cs not like "serbian" then
>       signal sqlstate '45000'  set message_text = "citizenship must be serbian";
>   end if;
>END

第二个不起作用,这是关于孤立的日子,可能是 14 或 28。 如果国家有病毒传播的高风险,应该是28,否则应该是14。 重点:如果当前国家在“国家”表中,“isolation_type”应该是28,否则应该是14。(我们假设如果当前国家它在国家/地区表中应该是 28)

我的想法是 在"person"表中我认设置14,所以如果国家是高风险应该28而不是14

> CREATE PROCEDURE `pr_isolated`(isolation_type enum("14","28"),>                                     
> country_travel varchar(40))
> BEGIN
>   /*CHECK IF THE CURRENT COUNTRY BELOGNS TO A COUNTRY*/
>   declare hotSpot varchar(40);
>   select name from country where name = country_travel into hotSpot;
>      if hotSpot <> '' then
>        /*INSERT ROW 28 DAYS*/
>        set isolation_type = "28";
>      end if;
> END

这是“人”表:

enter image description here

这是“国家”表

enter image description here

顺便说一句: 我有一个要求为那个人留下隔离日期,这就是为什么我有 capture_ts 和 capture_dt 供以后计算该值,我认为这是有道理的

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)