我不认为这是可能的,或者它是有道理的,但是这里的大多数人都比我更聪明,从来没有伤害过要求。是否可以在作为公式的数据库中创建表。我不是指查询。我的意思是,让我说我有一张桌子,其中一列是"价格"另一个是"数量"我想要一个专栏"费用"计算(价格*数量)....导入数据时。以后我可以这样做:
从表中选择*;
如果你告诉我这是一个我理解的愚蠢问题,但我是从内部客户那里得到的,需要对其进行调查。我运行的db是BlueMix上的DB2。
答案 0 :(得分:3)
您可以将费用列的默认值设置为
ALTER TABLE table-name ALTER COLUMN cost set cost=price*quantity;
或者你可以按如下方式创建触发器,
db2 create trigger trigger_name after insert on table_name
for each row mode db2sql begin atomic update tablle_name
set cost=qty*price; end
答案 1 :(得分:1)
尝试使用触发器。你有一个教程: https://www.tutorialspoint.com/db2/db2_triggers.htm
数据库触发器是自动执行的过程代码 回应某些事件
答案 2 :(得分:1)
您可以使用计算列来执行操作。在计算列中,您将默认公式为
ALTER TABLE <TABLENAME> ADD <COLUMN_NAME> AS (<COLUMN_NAME1> * <COLUMN_NAME2>);
因此,上述查询仅用于同一个表,您希望添加该列。 如果你想添加另一个表,有很多方法。
示例
示例:
CREATE TABLE Cost_Table
(
Cost int
);
INSERT INTO Cost_Table (Cost)<BR>
SELECT price * quantity FROM Table_name;
这是优化的方式。我们可以使用上面的查询而不是触发器。 因此,上面的查询使用了事务和存储过程。
答案 3 :(得分:0)
如果您不小心,可能会导致严重的安全漏洞。查找&#34; SQL代码注入&#34;。
但要做到这一点,另一条路线可能是在存储过程中使用EXECUTE IMMEDEATE
。