Requète sql simple auto_increment

mibs
Invité n'ayant pas de compte PHPfrance

25 oct. 2005, 21:20

Hello

Je ne comprends pas pourquoi ma requête n'est pas acceptée

Code : Tout sélectionner

requête SQL: ALTER TABLE `new` CHANGE `numpost` `numpost` INT( 1 ) NOT NULL DEFAULT '1' AUTO_INCREMENT MySQL a répondu:Documentation #1067 - Invalid default value for 'numpost'
Ce champs doit s'auto incrémenter de manière à numéroter les posts
Pouvez-vous help me ? :P

merci d'avance

Mammouth du PHP | 1885 Messages

25 oct. 2005, 21:28

Un champ AUTO_INCREMENT ne peut avoir de valeur par défaut. MySQL se chargera de lui en attribuer une automatiquement.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

mibs
Invité n'ayant pas de compte PHPfrance

25 oct. 2005, 21:50

merci de ton aide, ok je vois ce que tu veux dire, je viens de faire le test et j'obtient ceci

Code : Tout sélectionner

requête SQL: ALTER TABLE `new` CHANGE `numpost` `numpost` INT( 1 ) NOT NULL AUTO_INCREMENT MySQL a répondu:Documentation #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
je devrais définir une clé primaire alors j'ai fais ceci


requête SQL: Modifier

Code : Tout sélectionner

ALTER TABLE `new` ADD PRIMARY KEY ( `numpost` ( 1 ) ) MySQL a répondu:Documentation #1089 - Incorrect sub part key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique sub keys
mais ici je défini aussi mal la chose apparement ?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

25 oct. 2005, 22:18

MySQL a répondu:Documentation
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
ca veut dire que tu as deja un champ en auto-increment dans la table new !! tu ne peut en avoir 2 dasn une meme table, de plus si ce champ existe il doit etre clé.
Donc ton histoire de créeation de clé tu laisse de coté (si biensur tu en as deja une !! ce qui est obligatoire de toute façon (ou tres vivement conseilé))

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

m1bs
Invité n'ayant pas de compte PHPfrance

25 oct. 2005, 22:42

Sur cette table c'est le seul que je veux mettre en auto_increment, car il doit absolument s'incrémenter.

Il faut que je réfléchisse encore pour trouver quitte à recréer la table

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

25 oct. 2005, 22:48

Sur cette table c'est le seul que je veux mettre en auto_increment, car il doit absolument s'incrémenter.
je n'ai pas dis le contraire verifi que tu n'as pas déjà un autre champ en auto.
Il faut que je réfléchisse encore pour trouver quitte à recréer la table
Ben si ta table a 2 champs et aucune valeur a l'interieur c'est sur c'est plus raide comme ça :lol:

Mais sinon l'erreur dis bien que tu as deja un champ faut d'abord changer le type de l'autre champ puis seulement celui-ci pour le mettre en auto.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

m1bs
Invité n'ayant pas de compte PHPfrance

26 oct. 2005, 20:36

Merci de vos réponses

Bon je reviens à la charge j'ai pas trop de notions en sql alors par moment je comprends pas :?

Voici-ci dessous l'image lors de la sélection des paramètre pour les données sql, ( je l'ai défini en clé primaire)

Donc ce champ qui est testkey qui doit s'incrémenter en tant que nombre chaque fois que je poste un message

Et lors de ma sélection comme ci dessous ca ne passe pas, tjrs un message d'erreur, je paramètre faux ?


http://www.cs-view.com/upload/view.php? ... a82acc.jpg


Autre chose dans ma page web lorsque je post mon message, en meme temps testkey sera validé lui aussi une fois

donc lors d'un poste il se passe ceci:
dans la table new

-- il ajoute au champ post ce que je vient de poster
-- il ajoute 1 au champ testkey en faisant auto incrément


mais dans ma page web j'ai mis $num = 1 ; pour donner une valeur initiale au champ test key qui devra s'incrémenter mais peut-être que je m 'y prend prend encore une fois de plus mal... ^^

merci de votre aide

ViPHP
pjl
ViPHP | 2119 Messages

26 oct. 2005, 22:11

Bon je reviens à la charge j'ai pas trop de notions en sql alors par moment je comprends pas :?
pourquoi ne passes tu pas par phpMyAdmin pour modifier tes tables ?

m1bs
Invité n'ayant pas de compte PHPfrance

26 oct. 2005, 22:34

C'est bien bien par my php admin que je passe, on le vois dans mon screen, le truc c'est que je n'arrive pas à valider comme j ai fait la sélection

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

27 oct. 2005, 02:29

visiblement tu ne parametre pas comme il faut:

la valeur du champ "Taille/Valeur" de prend pas "1/1", tu peut laisser vide, par défaut le champ sera configuré sur "11".

champ "Défaut" de meme tu laisse vide ! ... la remarque a été fait pourtant :wink:

exporte la table et fait un copier coller pour qu'on puisse voir la configuration.

En ce qui concerne ton probleme php, je pense que tu t'y prend mal aussi...
$num = 1 ; pour donner une valeur initiale au champ test key
mais c'est un autre probleme ça.
D'abord la table (BD) et ensuite php :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

mibs
Invité n'ayant pas de compte PHPfrance

27 oct. 2005, 20:37

Ok voilà le message que je reçois en définissant comme tu me dit

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

Ok donc une seul colonne doit être définie en tant que clé donc je doit atribuer un clé a cette colonne ok , mtn quelle clé appliquer a cette colonne avant de pouvoir valider ceci

mibs
Invité n'ayant pas de compte PHPfrance

27 oct. 2005, 20:48

hehe c'est bon tout est réglé et s incrémente normalement, merci all for conseil ^^