Bonjour à tous,
Je souhaiterais créer une table dont un champ s'appelle "datelocation" au format DATE avec la date du jour par défaut.
Je n'arrive pas à trouver la bonne formule.
Que faut-il utiliser Current_date ou now() ?
Merci d'avance.
Version imprimable
Bonjour à tous,
Je souhaiterais créer une table dont un champ s'appelle "datelocation" au format DATE avec la date du jour par défaut.
Je n'arrive pas à trouver la bonne formule.
Que faut-il utiliser Current_date ou now() ?
Merci d'avance.
Créez une vue :
A +Code:
1
2
3 CREATE VIEW V_DATE_DU_JOUR AS SELECT NOW() AS JOUR
Code:
1
2
3
4 ... datelocation date default now(); ...
Bonjour et merci pour vos réponses mais j'ai un autre problème.
Pour être plus précis, voilà les deux tables que je souhaite créer.
La première se crée normalement.
Pour la deuxième je souhaiterais, que la valeur par défaut pour le champ dateretour, soit datelocation ou date du jour + 15 jours.
Code:
1
2
3
4
5
6
7
8
9 CREATE TABLE date ( datelocation DATE DEFAULT NOW() ); CREATE TABLE location ( datelocation DATE REFERENCES DATE(datelocation), dateretour DATE default(datelocation+15), prix FLOAT check (prix IN(2, 10, 20)) );
Voilà le message que j'obtiens:
Je ne sais pas comment faire.Citation:
ERROR: cannot use column references in default expression
État SQL :42P10
Merci d'avance.
Comme dit le message d'erreur, il n'est pas possible d'utiliser la valeur d'une colonne pour calculer la valeur par défaut d'une autre colonne.
Il faudra calculer cette valeur au moment de faire l'insertion dans la table.
C'est un exercice que j'ai du faire pendant un examen. Voilà la correction de l'examen pour le champ "Dateretour" (cours suivi avec Postgres):
Code:dateretour DATE DEFAULT (SYSDATE+15)
C'est la réponse à quelle question?Citation:
dateretour DATE DEFAULT (SYSDATE+15)
Dans le cadre d'un exercice sur une base de données permettant de gérer des locations de CD, je devais créer une requête pour créer plusieurs tables dont la table "location".
Une des contraintes était d'avoir, par défaut, une date de retour de location égale à la date de location + 15 jours.
La date de location étant par défaut la date du jour.
Mais sysdate+15 c'est valide pour Oracle, pas pour Postgresql. Avec Postgresql, ce serait plutôt une expression du genre: now()+'15 days'::interval
J'ai trouvé !!
Voilà la ligne qui va bien dans la requête:
Code:dateretour DATE DEFAULT (current_date + INTEGER '15')
Merci beaucoup pour votre aide.