文章詳情頁
如何防止 MySQL 中純數(shù)字?jǐn)?shù)據(jù)的 Insert?
瀏覽:89日期: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ù)庫徒增壓力么?大家都在給它減負(fù)
相關(guān)文章:
1. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題2. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.3. css - 定位為absolute的父元素中的子元素 如何設(shè)置在父元素的下面?4. javascript - angualr2中emit觸發(fā)一個方法然后怎么獲得這個promise的結(jié)果5. java - 請問在main方法中寫成對象名.屬性()并賦值,與直接參參數(shù)賦值輸錯誤是什么原因?6. mysql里的大表用mycat做水平拆分,是不是要先手動分好,再配置mycat7. java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統(tǒng)有創(chuàng)建日志文件,不寫入日志信息。8. javascript - 圖片鏈接請求一直是pending狀態(tài),導(dǎo)致頁面崩潰,怎么解決?9. python - beautifulsoup獲取網(wǎng)頁內(nèi)容的問題10. 怎么用css截取字符?
排行榜

熱門標(biāo)簽