2013-04-29 101 views
1

I'm與Oracle SQL開發工作的Oracle列定義爲varchar(1)M(男性)或F(女)

我需要定義一個約束爲一個新的數據的基礎上的該列: event_gender VARCHAR2(1) 它應該接受1個字符:M(男)或F(女);空不允許

我定義這種方式,但doesn't工作的約束:

CONSTRAINT "Check_gender" CHECK (REGEXP_LIKE(event_gender,'M'||'F')) 

什麼建議嗎?

+2

爲什麼不是'CHAR(1)'? – Phil 2013-04-29 06:14:39

+0

不確定,但情況可能是問題。 – Avi 2013-04-29 06:14:50

+0

感謝回答,它在字符中有同樣的問題 – user2330909 2013-04-29 06:59:52

回答

4

對錶'XYZ'的列'event_gender'應用約束,使其接受'M'或'F'值。約束命名爲'Check_gender':

ALTER TABLE XYZ 
add CONSTRAINT Check_gender 
CHECK (event_gender IS NOT NULL AND event_gender IN ('M', 'F')); 

要了解更多關於check constraints

+0

也許解釋將是非常有用的+1 – 2013-04-29 06:15:43

+0

在那裏也可以彈出一個非空。 – 2013-04-29 06:20:18

+0

@David:已編輯,如果語法正確,請告訴我。 – NINCOMPOOP 2013-04-29 06:24:15

相關問題