Fixer une valeur Max et Minimale à un champ sql ?

Bonjour les devs, j\'aimerai savoir si c\'est possible de fixer une valeur maximale et minimale à un champ sql. Ex: valeur maximale 150, valeur minimale -150.

PS: je sais que je peux aussi récupérer la valeur du champ et adapter ma requette derrière mais j\'aimerai faire ça le plus proprement possible.

Merci d\'avance amis chouals :)

Poster un commentaire
horusss
horusss
12 ans

Salut,

Avec Mysql c\'est impossible. Par contre c\'est possible avec un SGBD différent comme PostgreSQL :
CREATE TABLE matable
(monchamp integer CHECK(monchamp BETWEEN -150 AND 150));

LoK4n
LoK4n
12 ans

@horusss: merci mais c\'est un peu trop poussé pour mon projet :)

saian
saian
a
12 ans

Si j\'ai bien compris ce que tu veux faire, tu peux faire ça avec n\'importe quel champ numérique http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html par contre je sais pas si tu peux fixer toi même les limites...

LoK4n
LoK4n
12 ans

@saian: je regarde ça merci

Noobiwan
Noobiwan
12 ans

Utiliser une condition dans la requête.

Il n\'y a pas d\'autre moyen, mise à part un ENUM mais fastidieux et absolument pas efficace.

anonyme
anonyme
12 ans

Et pourquoi tu fais pas une simple condition?

LoK4n
LoK4n
12 ans

@Hotgeart: oui j\'y avais pas pensé, en fait un simple update WHERE mon_champ < $max fera l\'affaire. Dans tous les cas merci à tous :)

Noobiwan
Noobiwan
12 ans

Ce que tu peux faire est de ce genre (je pense, à vérifier donc):
INSERT INTO tabase (colonne)
VALUES( IF(tavaleur <= 150, ( IF(tavaleur >= -150), tavaleur, -150), 150) )

Je te conseille de toujours traiter les données avant donc en php si tu es sous ce language. Si les conditions sont respectées, là tu balance ta requête.

glo0my
glo0my
12 ans

Mauvais conseil. On effectue toujours le code data coté serveur, en cas de coupure.
Dans l\'idéal, le PHP ne devrait avoir que des fonctions d\'une ligne à appeler pour exécuter le code SQL coté serveur.
Effectivement, les contraintes CHECK sont syntaxiquement valides sous MySQL mais n\'ont aucun effort, sur aucun moteur. Cela dit, il n\'a employé ni le mot \"php\" ni \"mysql\" mais simplement \"sql\". Mais comme d\'hab, vous tirez des conclusions hâtives (même si cette fois, ça semble correct).

Cette page est réservée aux ADULTES

Tu es sur le point d'accéder à un site web qui contient du matériel explicite (pornographie).

Tu ne dois accéder à ce site que si tu as au moins 18 ans ou si tu as l'âge légal pour visionner ce type de matériel dans ta juridiction locale, l’âge le plus élevé étant retenu. En outre, tu déclares et garantis que tu ne permettras aucun mineur à d'accéder à ce site ou à ces services.


En accédant à ce site, tu acceptes nos conditions d'utilisation.