文章詳情頁
如何防止 MySQL 中純數(shù)字數(shù)據(jù)的 Insert?
瀏覽:128日期:2022-06-21 16:44:42
問題描述
比如我不希望 username 是純數(shù)字的,如果程序 insert 的數(shù)據(jù),username 是純數(shù)字的,就返回 mysql 數(shù)據(jù)格式錯誤,有這種功能嗎?
問題解答
回答1:通過儲存過程或者觸發(fā)器來實現(xiàn),但是這種邏輯最好還是由代碼層來控制
回答2:先說結(jié)論: 贊同LS的觀點,一般會寫在程序里面做驗證,數(shù)據(jù)庫只做基礎(chǔ)的比如unique這些的約束
如果真的要在數(shù)據(jù)庫做的話,一般會寫trigger
然后貌似還有add constraint check,但是mysql里面即使支持這個東西,也不會在存儲之前做檢查(all engines)
http://stackoverflow.com/questions/16005283/is-it-possible-to-enforce-data-checking-in-mysql-using-regular-expression
回答3:程序邏輯問題都不應(yīng)該交給數(shù)據(jù)庫去處理,或者應(yīng)該把它作為最后的驗證防線。
回答4:在提交前或者提交時就檢測。
回答5:這種基礎(chǔ)驗證也放在數(shù)據(jù)庫里來做,這不是給數(shù)據(jù)庫徒增壓力么?大家都在給它減負
相關(guān)文章:
1. bootstrp是col-md-12列的,只有col-md-10有內(nèi)容,可以讓沒有內(nèi)容的不占據(jù)位置嗎;2. wordpress里,這樣的目錄列表是屬于小工具還是啥?3. 常量在外面不加引號會報錯。4. mysql federated引擎無法開啟5. 百度地圖 - Android app中準備接入地圖sdk,百度VS高德哪個好一點?6. 我的怎么不顯示啊,話說有沒有QQ群什么的7. sublime text3安裝package control失敗8. python 3.4 error: Microsoft Visual C++ 10.0 is required9. android - Genymotion 微信閃退 not find plugin.location_google.GoogleProxyUI10. MySQL 使用 group by 之后然后 IFNULL(COUNT(*),0) 為什么還是會獲得 null
排行榜

熱門標簽