2023年8月15日 星期二

MySQL bit(1) 邏輯欄位 配合 View 後,竟然變了!

在資料庫表單中,經常有 Yes/No 的欄位,例如:是否已經繳款?是否審核通過?等。
原本,按理說,這樣的邏輯是否資料值的欄位,只要用 bit(1) 就足夠了。所以,我原本也就是用 bit(1) 來記錄就可以了。

結果在昨天設計SC時,由於需要使用到 VIEW,也就是SC是透過VIEW的方式來建立 GRID,(這另外說),結果 bit(1) 欄位值在 VIEW 的後面,都變成 True !連 False 也變成 True!造成程式跑出來當然就錯了!這不算是 SC的坑,但是 MySQL + VIEW 的坑了!我只好將 bit(1),改成 tinyint(1) 來記錄 0/1,這樣修改資料表結構以後,程式就完全正常了!

在這裡紀錄一下,一個小坑!

沒有留言:

張貼留言

如何判斷現在FORM是在 insert mode? 還是 update mode?

只要用  if (empty({primary_key})) 就可以知道是否為新增模式了。 如果 {promary_key} 是空白的,那麼就是在新增模式;反之,就是更新模式。 以上。