在表格中创建带有数学函数的新列

时间:2013-05-23 18:14:37

标签: mysql function

id    data1        data2       
1      10          15           
2      10          20     

我有这个表,我想在此表中添加新列(点)。

id     data1      data2        point
1      100         105           5
2      100         200          100

我想通过计算此公式来添加此点值,如下所示:

point = (data2 - data1)/data1 * 100 

如何将此值添加到点列?

请告诉我。 感谢

3 个答案:

答案 0 :(得分:2)

为什么不使用VIEW

CREATE VIEW vw_Table1 AS
SELECT id, data1, data2, (data2 - data1)/data1 * 100 point
  FROM table1

<强> SQLFiddle

答案 1 :(得分:0)

我认为您可以在插入/更新data1和data2列中的值后使用after insert/update触发器更新点列。

您可以参考Creating Triggers in MySQL了解更多详情。

答案 2 :(得分:0)

您可以使用触发器将其更新为@Yogendra Singh说,但如果它是一次性的话,那么您可以在一个UPDATE语句中执行:

ALTER TABLE data ADD COLUMN point integer;
UPDATE data SET point = (data2 - data1)/data1 * 100;

触发器功能如下:

CREATE TRIGGER update_point BEFORE INSERT ON data
  FOR EACH ROW BEGIN
    SET NEW.point = (data2 - data1)/data1 * 100;
  END;