2013-01-08 272 views
2

我有一個h2數據庫,其模式通過JPA/hibernate自動生成。現在我想將數據庫上的非空timestamp類型列更改爲當前時間的默認值。將h2數據庫上的列的默認值更改爲當前時間戳

我實際使用a trigger,這工作,但我想知道是否有一個更優雅的方式來實現這一目標,像(下面的代碼片段工作)

ALTER TABLE my_table ALTER COLUMN my_column SET DEFAULT CURRENT_TIMESTAMP; 

我查看了the documentation,並嘗試了上述「僞陳述」的一些變體,但現在已取得成功。

+0

我想象的要添加約束+ DEFAULT代替ALTER COLUMN – twoleggedhorse

+1

隨着_doesn't WORK_你的意思是......? –

+0

這是無效的SQL或它試圖解析字符串「CURRENT_TIMESTAMP」作爲一個真正的時間戳。這肯定不會改變列,所以當我沒有爲「my_column」提供值時,當前時間get將持續插入。 –

回答

2

看起來接近,你嘗試過:

ALTER TABLE <table name> ALTER COLUMN <column name> SET DEFAULT CURRENT_TIMESTAMP 
+0

對不起,我的不好,我在我的問題中有一個錯字。我嘗試了「CURRENT_TIMESTAMP」,這是行不通的。我會更新我的問題 –

+0

是的,它的工作原理,謝謝!我「以爲」我是這樣做的,但顯然,我犯了一些錯誤。 –

相關問題