mysql触发器使用两个表

时间:2012-03-25 18:53:06

标签: mysql triggers

我有一个名为'lms'的数据库,有两个表贷款和价值,表贷款有:loan_amount,annual_intrest,贷款类型;表值具有value_id,value_name,value_amount。 我想要的是我的触发器使用来自另一个表值的利率(value_amount)来计算贷款表中的年利息,其中loan_type(来自贷款表)等于值(来自Value表) 我试过这个,需要一些帮助

-- Trigger DDL Statements
DELIMITER $$

USE `lms`$$

CREATE
DEFINER=`root`@`localhost`
TRIGGER `lms`.`updateloan`
BEFORE INSERT ON `lms`.`loan` INNER JOIN 'lms'.'value'
FOR EACH ROW
BEGIN
    l.loan_type ="Computer Loan"
        SET l.yearly_intrest = (l.loan_amount *(v.value_amount/100))
        WHERE l.loan_type=v.value_name;

  END$$

表值包含两个value_names计算机和机动车,其值为2,5

我希望我的解释足够清楚

1 个答案:

答案 0 :(得分:1)

我没有尝试过,但它应该有用 -

DELIMITER $$

USE `lms`$$

CREATE
DEFINER=`root`@`localhost`
TRIGGER `lms`.`updateloan`
BEFORE INSERT ON `lms`.`loan`
FOR EACH ROW BEGIN
    SET NEW.yearly_interest = (SELECT NEW.loan_amount * value_amount/100 FROM `lms`.`value` WHERE value_name = NEW.loan_type);        
END$$