2017-07-27 2 views
0

Étant donné que j'ai 2 colonnes de table db VALID_FROM, VALID_TO et qu'elles forment une plage de dates à partir de la perspective du domaine. Comment vous assurer que VALID_TO n'est pas avant VALID_FROM lors de l'insertion?Contrainte SQL Check pour la plage de dates <VALID_FROM, VALID_TO>

Je suppose que la contrainte de vérification pourrait aider. Comment ressemblerait-on à Oracle db engine?

Répondre

2

Dans Sql Server, nous avons l'option d'utiliser Vérifier la contrainte qui est appliquée sur la table avant la création.

Exemple:

 CREATE TABLE test6 
    ( 
     id   INT IDENTITY(1, 1), 
     NAME  VARCHAR(50), 
     valid_from DATETIME, 
     valid_to DATETIME, 
     CONSTRAINT check_valid_to CHECK (valid_to > valid_from) 
    ) 

J'espère que cela vous aidera.

Et Oracle vous pouvez l'utiliser comme:

CREATE TABLE test6 
(
    id   NUMBER, 
    NAME   VARCHAR (50), 
    valid_from DATE, 
    valid_to  DATE, 
    CONSTRAINT check_valid_to CHECK (valid_to > valid_from) 
)