[英]Future Dates SQL Developer
我正在尝试创建一个不允许将来年份使用的约束。 我有这个:
ALTER TABLE PACIENTE ADD CONSTRAINT ck_FechaNacimiento
CHECK (FechaNacimiento<=current_date);
但是我收到error 02436
。
您不能创建非确定性约束。 因此,您不能创建引用诸如current_date
或sysdate
类的函数的约束,该约束每次调用时都会返回不同的值。
如果要强制执行此类操作,则需要在表上创建一个触发器,如果违反了业务规则,该触发器将引发错误,即
CREATE OR REPLACE TRIGGER trg_paciente
BEFORE INSERT OR UPDATE
ON paciente
FOR EACH ROW
BEGIN
IF( :new.FechaNacimiento > current_date )
THEN
RAISE_APPLICATION_ERROR( -20001, 'FechaNacimiento<=current_date must be in the past' );
END IF;
END;
我再次尝试过此操作,但未显示错误,谢谢:
ALTER TABLE EXAMENPACIENTE ADD CONSTRAINT ExamenPaciente_FechaExamen_c1 CHECK(FechaExamen <='30-SEP-2013');
ALTER TABLE PACIENTE ADD CONSTRAINT ck_FechaNacimiento CHECK (FechaNacimiento<=SYSDATE);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.