繁体   English   中英

在另一列中插入添加的列值

[英]inserting added column values in another column

我有一个名为student的表,具有以下列名和数据

NAME   MARK2      MARK3      mark1      total  
surya  85         95         123        
priya   75         95         25         
vishnu   88         75        27

有什么办法可以添加列mark1和mark2和mark3并插入总共添加的值,你们可以建议我有关此问题。

这样尝试

UPDATE student
   SET total = mark1 + mark2 + mark3;

更好,只是创建一个视图

CREATE VIEW vw_student AS
SELECT name, mark3, mark2, mark1, mark3 + mark2 + mark1 total
  FROM student;

并用它代替

SELECT * FROM vw_student;

这是两种方法的SQLFiddle演示


UPDATE:根据您的注释,您可以创建一个触发器(实际上是两个,用于INSERT ,第二个用于UPDATE ),以自动填充total

CREATE TRIGGER tg_bi_student
BEFORE INSERT ON student
FOR EACH ROW
  SET NEW.total = NEW.mark1 + NEW.mark2 + NEW.mark3;

CREATE TRIGGER tg_bu_student
BEFORE UPDATE ON student
FOR EACH ROW
  SET NEW.total = NEW.mark1 + NEW.mark2 + NEW.mark3;

这是用于触发方法的SQLFiddle


第二次更新由于您实际使用的是Oracle,因此您可以将total定义为一个计算列

CREATE TABLE student
(
  NAME  VARCHAR2(32), 
  MARK2 NUMBER, 
  MARK3 NUMBER, 
  mark1 NUMBER, 
  total NUMBER GENERATED ALWAYS AS (mark1 + mark2 + mark3)
);

您可以通过这种方式更改表的架构

ALTER TABLE student DROP COLUMN total;
ALTER TABLE student ADD total NUMBER GENERATED ALWAYS AS (mark1 + mark2 + mark3);

这是SQLFiddle演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM