Bonsoir ! C'est encore moi --'
Toujours sur ma BDD type AlloCiné, je cherche à mettre une valeur max pour un INT pour la note d'un film ... En clair, je voudrais que l'on puisse mettre 5 ou 10 comme valeur max ... Est-ce possible ?
Merci d'avance
Bonsoir ! C'est encore moi --'
Toujours sur ma BDD type AlloCiné, je cherche à mettre une valeur max pour un INT pour la note d'un film ... En clair, je voudrais que l'on puisse mettre 5 ou 10 comme valeur max ... Est-ce possible ?
Merci d'avance
Ca se fait soit côté applicatif, soit au moment de l'insertion avec un trigger.
ça c'est débile, il faudrait le faire dans toutes les applications actuelles et futures !!!!!
ça c'est contre performant.... !soit au moment de l'insertion avec un trigger.
Mieux vaudrait faire une contrainte CHECK ! Malheureusement, MySQmerde ne les acceptent toujours pas !
Extrait de la doc :
"The CHECK clause is parsed but ignored by all storage engines"
Bref, prenez un vrai SGBDR, pas un ersatz ! A me lire : http://blog.developpez.com/sqlpro/p9...oudre_aux_yeux
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Bonsoir,
Si vous souhaitez que la note des films prenne une valeur maximale, vous pouvez la définir avec la clause DEFAULT. Il faudra lancer une requête ALTER TABLE pour appliquer cette contrainte. Par exemple, si les notes vont de 0 à 10, vous pouvez saisir :
TINYINT consomme 1 octet tandis que INT en consomme 4. Vous économiserez ainsi 3 octets pour chaque ligne dans votre table.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ALTER TABLE Film MODIFY Note TINYINT NOT NULL DEFAULT 10;
Bonsoir
Je suis étonné de la réponse de la réponse de MacFly58. Je ne vois pas en quoi mettre une valeur par défaut de "10" empêcherait de saisir des valeurs supérieures. JE suis preneur d'explications.
Pierre
Bonsoir,
Mettre une valeur par défaut de "10" n'empêchera pas de saisir des valeurs supérieures. L'explication, c'est que j'ai mal compris le besoin exprimé par VLorde.
Dans ce cas, outre un ensemble de triggers, une autre solution est envisageable et parfois préférable.
Il est possible de créer une table "Note" contenant les notes des films (de 1 à 10 par exemple) et que la colonne Note de la table "Film" référence la clé primaire de la table "Note".
La création de cette clé étrangère permettra de définir un intervalle de validité pour toutes les notes.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager