Oracle - SQL Как проверить даты перед вставкой - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть простой оператор вставки, как показано ниже

Insert into table_X (id, validFrom, validTo, someValue) VALUES(?,?,?,?);

, где validFrom и validTo имеют тип DATE.

Я хочу вставить записи в таблицу, только если validFrom <= validTo. Как я могу добавить проверку некоторых условий в оператор SQL для этого? Сейчас я выполняю проверку с помощью java и хочу сделать это в запросе sql, если это возможно.

РЕДАКТИРОВАТЬ

CREATE TABLE XYZ.TABLE_X 
(
  ID VARCHAR2(20 BYTE) NOT NULL , 
  VALIDFROM DATE NOT NULL , 
  VALIDTO DATE NOT NULL , 
  SOMEVALUE NUMBER(18, 0) NOT NULL , 
  CONSTRAINT TABLE_X_PK_N2 PRIMARY KEY 
  (
    ID , 
    VALIDFROM , 
    VALIDTO 
  )
  ENABLE
    CONSTRAINT  chk_table_x_valids
  (
    check(VALIDFROM <= VALIDTO )
  )
  ENABLE 
) 
ORGANIZATION INDEX 
LOGGING 
TABLESPACE XYZ 
...

1 Ответ

1 голос
/ 16 апреля 2020

Вы можете добавить ограничение check:

alter table table_x add constraint chk_table_x_valids
    check (validFrom <= validTo);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...