如何在MySQL中创建将整数值更新为状态字符串的触发器?

如何在MySQL中创建将整数值更新为状态字符串的触发器?,mysql,database-trigger,Mysql,Database Trigger,我有两张表:检查表和部件表。检查表有一列用于分数,一列用于检查日期。组件表有一个构建状态列,该列根据检查分数的值列出每个组件的状态。我需要将检查分数(例如100)转换为状态(例如就绪)。使用外键约束,我可以将检查分数的值拉入组件构建状态列。然而,我实现的触发器并没有将该值转换为状态。请帮助: delimiter // create trigger build_status_update before insert on components for e

我有两张表:检查表和部件表。检查表有一列用于分数,一列用于检查日期。组件表有一个构建状态列,该列根据检查分数的值列出每个组件的状态。我需要将检查分数(例如100)转换为状态(例如就绪)。使用外键约束,我可以将检查分数的值拉入组件构建状态列。然而,我实现的触发器并没有将该值转换为状态。请帮助:

    delimiter //
    create trigger build_status_update 
    before insert
    on components 
    for each row 
       begin
        update components
        set build_status = 'ready'
        where build_status >='90'; 
        update components
        set build_status = 'not-ready'
        where build_status <='75'; 
        update components
        set build_status = 'usable'
        where build_status = null; 
     end
     //
     delimiter ; 
分隔符//
创建触发器生成\u状态\u更新
插入前
关于组件
每行
开始
更新组件
设置build_status='ready'
其中build_status>='90';
更新组件
设置生成\u状态='未就绪'

根据您的评论,我认为您的表结构如下:

tbl_Inspection:
-------------------------------------------
id int not null
date datetime
score int
component_id int (foreign key to component)

tbl_component
-------------------------------------------
id int not null
name varchar(255)
build_status <==== should default to "not-ready"

这使得触发器在将记录插入检查表时更新components表中的相应记录

您是否能够发布这两个表的表结构。从你的描述中,我认为你的整体思维可能有缺陷,你寻找的解决方案与这个问题的答案不同;表2:Components,Columns=Component\u Name,Component\u Numb,Build\u status我试图做什么:如果inspection.score>=到'90',那么Component.Build\u status='ready'等等。不客气,如果这解决了您的问题,您可以接受这一正确答案
delimiter //
create trigger build_status_update 
before insert
on inspections 
for each row 
   begin
    update components
       set build_status = if(new.score>=90,'ready','not-ready')
       where id = new.component_id; 
   end
 //
 delimiter ;