我不認爲這是可能的或者它是有道理的,但是這裏的大多數人都比我聰明得多,它從不會受傷。是否可以在公式爲數據庫中創建表格?我不是指查詢。我的意思是讓我說我有一張桌子,其中一列是「價格」,另一個是「數量」,我想要一列「成本」來計算(價格*數量)....隨着數據的導入。所以後來我可以:數據庫表中的公式/計算列
select * from table;
如果你告訴我,這是一個愚蠢的問題,我會理解,但我從內部客戶端得到它,需要調查它。我使用的db是BlueMix上的DB2。
我不認爲這是可能的或者它是有道理的,但是這裏的大多數人都比我聰明得多,它從不會受傷。是否可以在公式爲數據庫中創建表格?我不是指查詢。我的意思是讓我說我有一張桌子,其中一列是「價格」,另一個是「數量」,我想要一列「成本」來計算(價格*數量)....隨着數據的導入。所以後來我可以:數據庫表中的公式/計算列
select * from table;
如果你告訴我,這是一個愚蠢的問題,我會理解,但我從內部客戶端得到它,需要調查它。我使用的db是BlueMix上的DB2。
您可以爲成本列設置默認值
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
嘗試使用觸發器。您在這裏有一個教程: https://www.tutorialspoint.com/db2/db2_triggers.htm
數據庫觸發器是自動響應執行 某些事件
程序代碼
謝謝vladatr。我有點希望你會告訴我,即使問這個問題我也很愚蠢.....但現在我必須這樣做:/謝謝 –
您可以使用計算列進行操作。在計算列中,您將給出默認公式
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;
這是最優化的方式。我們可以使用上面的查詢來代替觸發器。 因此上面的查詢在事務和存儲過程中使用。
如果您不小心,可能會導致嚴重的安全漏洞。查找「SQL代碼注入」。
但是要做到這一點,另一條路線可能是在存儲過程中使用EXECUTE IMMEDEATE
。
謝謝你Jinesh。我有點希望你會告訴我,即使提出這個問題,我也很愚蠢.....但現在我必須這樣做:/謝謝 –