我有一個列名
它必須只包含字符,而不是數字
如何使用CHECK條件:如何使用CHECK約束來限制非數字型varchar2(僅字母)?
CHECK(NAME NOT LIKE '%[0-9]%')
或任何其他方法...
編輯:使用Oracle數據庫。
我有一個列名
它必須只包含字符,而不是數字
如何使用CHECK條件:如何使用CHECK約束來限制非數字型varchar2(僅字母)?
CHECK(NAME NOT LIKE '%[0-9]%')
或任何其他方法...
編輯:使用Oracle數據庫。
你不說出你的DBMS,所以我假定PostgreSQL的
CHECK(name ~ '^[^0-9]*$')
Oracle語法請...! – 2012-05-29 15:01:25
Double negative應該是標準的(雖然不是MySQL的),因爲它使用LIKE:
CHECK(NAME NOT LIKE '%[^a-zA-Z]%')
這是**不是**標準SQL,因爲標準不支持LIKE的正則表達式。哪個DBMS支持這種語法? – 2012-01-06 12:20:47
SQL Server,sybase。它不是餐廳 – gbn 2012-01-06 12:27:18
「*餐廳*」是什麼意思? (我不是母語的人) – 2012-01-06 12:28:44
哪個數據庫? – Richard 2012-01-06 10:39:44
LIKE(至少在SQL標準中)不支持正則表達式。 – 2012-01-06 10:46:23