我在表格簿中有列...命名为状态...我想设置默认值 1...
但是,我尝试了 DEFAULT 1,
ALTER TABLE book MODIFY status DEFAULT 1
并且我插入了新记录...记录状态为空
我尝试在 null 1 上使用 Default
ALTER TABLE book MODIFY status DEFAULT ON NULL 1;
输出:ORA-00936:缺少表达式
我应该怎么办?如果我希望状态值默认为 1,插入新记录时不为空
我在表格簿中有列...命名为状态...我想设置默认值 1...
但是,我尝试了 DEFAULT 1,
ALTER TABLE book MODIFY status DEFAULT 1
并且我插入了新记录...记录状态为空
我尝试在 null 1 上使用 Default
ALTER TABLE book MODIFY status DEFAULT ON NULL 1;
输出:ORA-00936:缺少表达式
我应该怎么办?如果我希望状态值默认为 1,插入新记录时不为空
您的ALTER TABLE book MODIFY status DEFAULT ON NULL 1;
声明有效(从 Oracle 12.0.1 开始):
CREATE TABLE book (
id INT
GENERATED ALWAYS AS IDENTITY
PRIMARY KEY,
status NUMBER(1)
);
ALTER TABLE book MODIFY status DEFAULT ON NULL 1;
INSERT INTO book ( status ) VALUES ( NULL );
INSERT INTO book ( status ) VALUES ( 0 );
INSERT INTO book ( status ) VALUES ( 1 );
然后:
SELECT * FROM book;
输出:
身份证 | 地位 -: | -----: 1 | 1 2 | 0 3 | 1
db<>在这里摆弄
如果您使用的是 12.0.1 之前的数据库版本,那么您也可以使用触发器:
CREATE TRIGGER book__status_is_null__trg
BEFORE INSERT OR UPDATE ON book FOR EACH ROW
BEGIN
IF :new.status IS NULL THEN
:new.status := 1;
END IF;
END;
/
db<>在这里摆弄