2013-02-21 85 views
1

我在MySQL中創建了一個包含以下語句的表。如何在插入MySQL之前檢查字符串長度?

CREATE TABLE Users (
    UserName VARCHAR(15) NOT NULL PRIMARY KEY, 
    Password VARCHAR(15) NOT NULL, 
    Active Bool DEFAULT TRUE 
) 

所以我希望做一個2觸發器在此表:

  1. 檢查用戶名和密碼要超過4個或8個字符。 (檢查插入新行的字符串的最小長度)
  2. 使用一些正則表達式來檢查密碼。例如,我希望它包含大寫和小寫字符和數字。

請指導我。 非常感謝。

+0

由於MySQL仍然不支持檢查約束,因此您需要一個觸發器。 – 2013-02-21 08:21:30

+0

爲什麼你想把這個任務投入到MySQL?只需在您的客戶端軟件中完成。 – mvp 2013-02-21 08:21:44

+1

@mvp有時數據庫被多個項目使用...不是說這是,但它是一個參數:) – 2013-02-21 08:22:25

回答

2

您可以使用存儲過程或觸發器以測試數據第一
MySQL不支持不像其他RDBMS

CHECK約束存儲過程的做法是比較明顯的,因爲它插入/更新前測試。
觸發器對於後面的代碼維護來說可能相當不透明

但是,我更關心在數據庫中使用純文本密碼。你通常使用的salt和hash在哪裏等?

相關問題