1
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 

如何将此值添加到点列中?

请告诉我。谢谢

4

3 回答 3

2

为什么不只使用视图

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

SQLFiddle

于 2013-05-23T18:23:33.047 回答
1

正如@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;
于 2013-05-23T18:18:19.800 回答
0

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

您可能需要参考在 MySQL 中创建触发器以获取更多详细信息。

于 2013-05-23T18:17:00.400 回答