首頁  >  問答  >  主體

如何防止 MySQL 中纯数字数据的 Insert?

比如我不希望 username 是纯数字的,如果程序 insert 的数据,username 是纯数字的,就返回 mysql 数据格式错误,有这种功能吗?

大家讲道理大家讲道理2742 天前670

全部回覆(5)我來回復

  • PHP中文网

    PHP中文网2017-04-17 14:49:14

    透過儲存過程或觸發器來實現,但是這種邏輯最好還是由程式碼層來控制

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 14:49:14

    先說結論: 贊同LS的觀點,一般會寫在程式裡面做驗證,資料庫只做基礎的比如unique這些的約束

    如果真的要在資料庫做的話,通常會寫trigger

    然後看起來還有add constraint check,但是mysql裡面即使支援這個東西,也不會在儲存之前做檢查(all engines)

    http://stackoverflow.com/questions/16005283/is-it-possible-to-enforce-data-checking-in-mysql-using-regular-expression

    回覆
    0
  • PHPz

    PHPz2017-04-17 14:49:14

    程式邏輯問題都不應該交給資料庫去處理,或應該把它當作最後的驗證防線。

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 14:49:14

    在提交前或提交時就檢測。

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 14:49:14

    這種基礎驗證也放在資料庫裡來做,這不是給資料庫徒增壓力麼?大家都在給它減負

    回覆
    0
  • 取消回覆