文章詳情頁
如何防止 MySQL 中純數(shù)字?jǐn)?shù)據(jù)的 Insert?
瀏覽:210日期: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. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””2. boot2docker無法啟動3. docker-compose中volumes的問題4. java - SSH框架中寫分頁時service層中不能注入分頁類5. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.6. javascript - mock.js可以存儲數(shù)據(jù)嗎7. nignx - docker內(nèi)nginx 80端口被占用8. docker api 開發(fā)的端口怎么獲取?9. dockerfile - 為什么docker容器啟動不了?10. node.js - antdesign怎么集合react-redux對input控件進行初始化賦值
排行榜

熱門標(biāo)簽
網(wǎng)公網(wǎng)安備