我尝试修改现有表中列的默认值,但它无法正常工作。我在其他网站上进行了研究,但它没有工作。
xrTableCell50
我的默认值设置为ALTER TABLE STOREREPS
MODIFY (COMM DEFAULT ('Y', 'N'));
。
我正在使用Oracle 11g SQL Developer。
答案 0 :(得分:4)
您只能拥有一个默认值。将行插入表中并且不指定列的值时,将使用默认值。您可以添加CHECK约束以确保仅允许'Y'
或'N'
;这可能就是你所寻求的。
根据每个DBMS(现在标识为Oracle)的变体,你可以写一些like:
ALTER TABLE STOREREPS
MODIFY (COMM DEFAULT 'Y'),
ADD CONSTRAINT check_comm_y_n CHECK (COMM IN ('Y', 'N'));
在CREATE TABLE语句中,可能是:
CREATE TABLE StoreReps
(
…
Comm CHAR(1) NOT NULL DEFAULT 'Y'
CONSTRAINT check_comm_y_n CHECK (Comm IN ('Y', 'N')),
…
);
但确切的语法因DBMS而异。