Se connecter avec
S'enregistrer | Connectez-vous

[mysql] format de champs

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte

L'auto-incrémentation permet, comme son nom l'indique, d'avoir une colonne (d'un type entier) où le SGBD va automatiquement attribuer une valeur si tu fais une insertion sans préciser la valeur de cette colonne. C'est pratique pour avoir un identifiant unique sans avoir à le gérer soi même.

Par exemple, si tu as une table avec 2 champs, Id (autoincrémenté) et txt, si tu fais les insertions suivantes :
INSERT INTO table(txt) VALUES('aaa');
INSERT INTO table(txt) VALUES('bbb');
INSERT INTO table(txt) VALUES('ccc');
tu auras dans ta table :
Id | txt
---+----
1 | aaa
2 | bbb
3 | ccc

Tu peux récupérer la dernière valeur qu'il a attribué automatiquement par LAST_INSERT_ID()

Il y a des conditions pour qu'une colonne puisse être définie auto-incrémentée :
- qu'elle ait un type entier (int, smallint...)
- que la colonne soit une clé
- une seule colonne auto-incrémentée par table

THEniluje a écritS'il y a delet d'une entrée donc ca continue le compte sans donner deux fois le meme numero où faut préciser en unique ?

Sinon c'est quoi la place prise par un int ?
Par défaut, je pense que ca prend 4 octets. Mais tu as d'autres types entiers qui prennent un peu moins de place (mais l'intervalle de valeurs est alors plus faible).

Quand tu supprimes une entrée, non, il ne reprends pas le numéro (il ne bouche pas les trous). Sauf peut être dans certaines versions où, si tu supprimes le(s) dernier(es) entrée(s), il peut décrémenter d'autant le compteur.

Mais si tu veux boucher des trous, rien ne t'empêche de faire une insertion en précisant explicitement la valeur qui t'intéresse :) 

rinazz a écritexiste-t-il un champs n'acceptant ke du texte, et ne l'interpretant pas en html (s'il contient du code html) ?
:??: 
Tu as les champs CHAR(n), VARCHAR(n) ou TEXT qui permettent de stocker du texte. Mais le serveur SQL n'interprète pas le HTML. Pour lui, c'est du texte, rien de plus.

mr>> en fait me question c'etait pour savoir si dans le cas ou j'ai "1, 2, 3" et que je supprimais l'enrengistrement "2", ce que ferait mysql : du moment qu'il ne met pas "3" sur la prochaine c'est impect :) 

rinazz>> echo htmlentities($ton_text_brut);
Lassé par la pub ? Créez un compte