J'utilise Oracle SQL Developer.Ajout de contraintes liées à la date sur des colonnes de table avec des conditions spécifiques
est en dessous du tableau ci-dessous, j'ai créé:
CREATE Screening_Plan
(
plan_id NUMBER (4) PRIMARY KEY,
movie_id NUMBER (4) NOT NULL,
plan_start_date DATE NOT NULL,
plan_end_date DATE NOT NULL,
plan_min_start_hh24 NUMBER (2) NOT NULL,
plan_max_start_hh24 NUMBER (2) NOT NULL,
plan_no_of_screenings NUMBER (2) NOT NULL
);
Pour la colonne plan_start_date, comment ajouter une contrainte par défaut: lundi prochain?
Pour la colonne plan_end_date, comment ajouter une contrainte à la valeur par défaut: lundi prochain + 6 (jours)? Pour la colonne plan_min_start_hh24, comment ajouter une contrainte pour conserver la valeur entre 9 (9:00) et 22 (22:00) et définir la valeur par défaut sur 9? Pour la colonne plan_max_start_hh24, comment ajouter une contrainte pour conserver la valeur entre 9 (9h00) et 22 (22h00) et définir la valeur par défaut sur 22 et définir supérieur ou égal à plan_min_start_hh24?
Y at-il une raison pour laquelle vous souhaitez ajouter ces règles comme des contraintes au niveau de la table? Dans mon expérience, ce type de logique est codé au niveau de la couche d'application –
Je voulais tester et voir comment les contraintes fonctionnent au niveau de la table juste pour la connaissance. – stranger
Voulez-vous affecter une valeur DEFAULT à une colonne à affecter à cette colonne si une instruction INSERT omet une valeur pour cette colonne? Ou vous voulez définir une contrainte d'intégrité, c'est-à-dire une règle qui interdit de stocker dans la colonne les valeurs qui ne remplissent pas les conditions définies? Il y a deux choses distinctes - DEFAULT et CONTRAINTES. Dans ce dernier cas, une contrainte telle que «date de début doit être NEXT LUNDI» n'a pas de sens. – krokodilko