2017-08-26 121 views

回答

1

當其他列中引用的值發生更改時,GENERATED列會自動更新。正確的語法是:

ALTER TABLE my_table ADD length INT GENERATED ALWAYS AS (DATEDIFF('day', date1, date2)) 
+0

很好但不能在HSQLDB上工作意外的令牌總是需要BY在聲明中... – Wilcar

+0

看起來您使用的是舊版本的HSQLDB。我檢查了我的答案,並糾正了它,因爲我發現它需要圓括號,並且它現在可以在HSQLDB版本2.3x及更高版本中正常工作。 – fredt

+0

是的,我正在使用LibreOffice – Wilcar

2
ALTER TABLE my_table ADD lenght AS int; 

UPDATE my_table SET lenght = DateDiff('dd', date1, date2); 

-- Don't forget to add a trigger that fires on updated and inserted rows that will keep the value of lenght valid if the date1 or date2 changes 
+0

太好了。你能幫我觸發我是一個絕對的初學者... – Wilcar

+0

對我來說:ALTER TABLE my_table ADD lenght int; – Wilcar