2

我知道它可以自动增加值,但我想知道是否可以根据其他两个字段的值填充一个字段。我有一个包含以下字段的表格:

CREATE TABLE pligg_links (
  ...
  link_votes INT,
  link_reports INT,
  link_votes_total INT,
  ...
);

字段 link_votes_total 应包含从 link_reports 中减去的字段 link_votes 的值。所以基本上,这是数学方程:link_votes_total = link_votes - link_reports. 在存储数据之前,这是否可能无需使用 php 来完成?

4

2 回答 2

3

是的,这可以通过为BEFORE INSERT和另一个创建触发器来完成BEFORE UPDATE

DELIMITER //

CREATE TRIGGER trig_mytable BEFORE INSERT ON my_table
FOR EACH ROW
BEGIN
    SET NEW.link_votes_total = NEW.link_votes - NEW.link_reports;
END
//

CREATE TRIGGER trig_mytable BEFORE UPDATE ON my_table
FOR EACH ROW
BEGIN
    SET NEW.link_votes_total = NEW.link_votes - NEW.link_reports;
END
//

DELIMITER ;

延伸阅读:

于 2010-02-25T01:19:42.917 回答
1

见:http ://dev.mysql.com/doc/refman/5.1/en/triggers.html

DELIMITER //

CREATE TRIGGER bir_links
BEFORE INSERT ON links
FOR EACH ROW 
BEGIN
    SET link_votes_total = NEW.link_votes - NEW.link_reports;
END;
//

CREATE TRIGGER bur_links
BEFORE UPDATE ON links
FOR EACH ROW 
BEGIN
    SET link_votes_total = NEW.link_votes - NEW.link_reports;
END;
//

DELIMITER ;
于 2010-02-25T01:24:53.710 回答