2012-06-19 19 views
2

如果我想在MySQL中定義自定義列格式,該怎麼辦?我想要的自定義格式始終是一個2位整數,後跟#號,然後是一個空格,然後是小數點後的兩位數的十進制數。允許值的例子是這樣的:那些不允許如何執行自定義MySQL列格式

30# 11.00 
27# 17.25 
40# 17.25 

值是這樣的:

30# 11 
40# 20.5 
some string 

這是可能在MySQL?如果是這樣,關於如何做的提示?

謝謝!

+0

那麼,你總是可以做到這一點,這是一個簡單的方法,這將是一個關係到'id int float(4,2)':) –

+0

使用該列作爲'varchar' –

+0

現在我使用varchar ,當然,但我想強制執行這種自定義格式。如果您試圖插入一個不是所需格式的值,那麼數據庫應該會返回一個錯誤,但不能保存它。 –

回答

3

很好,因爲「CHECK子句已解析但被所有存儲引擎忽略。」在mysql中,你唯一剩下的選擇是在你的表上添加一個插入/更新觸發器到regexp你的輸入並繼續。

+0

是的,我希望不必做觸發器,但我認爲你可能是正確的,它是唯一的方法來做到這一點。 –

+1

是的觸發器只能用於最絕望的時刻。也許你的應用程序可以在應用層執行這些檢查嗎? – Sebas

+0

目前,觸發器是在MySQL中執行此操作的唯一方法。 – spencer7593