如何防止 MySQL 中純數(shù)字?jǐn)?shù)據(jù)的 Insert?
問題描述
比如我不希望 username 是純數(shù)字的,如果程序 insert 的數(shù)據(jù),username 是純數(shù)字的,就返回 mysql 數(shù)據(jù)格式錯(cuò)誤,有這種功能嗎?
問題解答
回答1:通過儲(chǔ)存過程或者觸發(fā)器來實(shí)現(xiàn),但是這種邏輯最好還是由代碼層來控制
回答2:先說結(jié)論: 贊同LS的觀點(diǎn),一般會(huì)寫在程序里面做驗(yàn)證,數(shù)據(jù)庫只做基礎(chǔ)的比如unique這些的約束
如果真的要在數(shù)據(jù)庫做的話,一般會(huì)寫trigger
然后貌似還有add constraint check,但是mysql里面即使支持這個(gè)東西,也不會(huì)在存儲(chǔ)之前做檢查(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)該把它作為最后的驗(yàn)證防線。
回答4:在提交前或者提交時(shí)就檢測。
回答5:這種基礎(chǔ)驗(yàn)證也放在數(shù)據(jù)庫里來做,這不是給數(shù)據(jù)庫徒增壓力么?大家都在給它減負(fù)
相關(guān)文章:
1. docker綁定了nginx端口 外部訪問不到2. 前端 - html5 audio不能播放3. javascript - 最近用echarts做統(tǒng)計(jì)圖時(shí)遇到兩個(gè)問題!!4. html - radio的使用時(shí)如何避免整個(gè)頁面只能選一個(gè)的情況5. git - webstorm窗口中左側(cè)列表的文件名顏色怎么修改6. 利用百度地圖API定位及附件商家信息服務(wù)7. javascript - 深夜被問題困擾求解惑,rn的API之PermissionsAndroidd的問題8. 如何解決docker宿主機(jī)無法訪問容器中的服務(wù)?9. 請問各位java自帶類的一些問題10. java - Activity 進(jìn)入后臺(tái)再次傳值?

網(wǎng)公網(wǎng)安備