簡體   English   中英

未來日期SQL Developer

[英]Future Dates SQL Developer

我正在嘗試創建一個不允許將來年份使用的約束。 我有這個:

ALTER TABLE PACIENTE ADD CONSTRAINT ck_FechaNacimiento
CHECK (FechaNacimiento<=current_date);

但是我收到error 02436

您不能創建非確定性約束。 因此,您不能創建引用諸如current_datesysdate類的函數的約束,該約束每次調用時都會返回不同的值。

如果要強制執行此類操作,則需要在表上創建一個觸發器,如果​​違反了業務規則,該觸發器將引發錯誤,即

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM