Comment peut-on éviter cette erreur MySQL Incorrect spécificateur de colonne pour la colonne NOM de la COLONNE?
Comment peut-on éviter cette erreur MySQL Incorrect spécificateur de colonne pour la colonne topic_id ?
Erreur MySQL...
#1063 - Incorrect column specifier for column 'topic_id'
Schéma SQL...
CREATE TABLE discussion_topics (
topic_id char(36) NOT NULL AUTO_INCREMENT,
project_id char(36) NOT NULL,
topic_subject VARCHAR(255) NOT NULL,
topic_content TEXT default NULL,
date_created DATETIME NOT NULL,
date_last_post DATETIME NOT NULL,
created_by_user_id char(36) NOT NULL,
last_post_user_id char(36) NOT NULL,
posts_count char(36) default NULL,
PRIMARY KEY (topic_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Vous devez vous connecter pour publier un commentaire.
À utiliser
AUTO_INCREMENT
vous devez deifne colonne commeINT
ou les types à virgule flottante, pasCHAR
.AUTO_INCREMENT
utiliser uniquement unsigned la valeur, il est bon d'utiliserUNSIGNED
ainsi;UNSIGNED
vsSIGNED
je n'ai aucune idée de ce que cela signifie, malheureusement, et je n'ai pas le temps de lire pendant une heure maintenant?La
auto_increment
propriété ne fonctionne que pour les colonnes numériques (entiers et à virgule flottante), paschar
colonnes:Citant le doc:
Dans votre cas, vous êtes en essayant de les appliquer
AUTO_INCREMENT
modificateur dechar
colonne. Pour résoudre ce problème, soit le supprimerAUTO_INCREMENT
au total (ce qui signifie que vous devrez générer un identifiant unique sur le niveau d'application) ou tout simplement de changertopic_id
type de de la entier un.Au passage, il fait peu de sens à l'aide de
char(36)
pour stocker les messages compter, de sorte que le type de la colonne a probablement à être modifié. Il semble que vous allez de cette façon à empêcher le débordement d'entier - mais si vous faites affaire avec plus de18446744073709551615
postes (le plus grand nombre qui peut être stockée dansBIGINT UNSIGNED
colonne) dans un seul topic, vous avez beaucoup plus gros problème de votre côté, probablement. )J'ai eu le même problème, mais en utilisant le type Long. J'ai changé pour INT et il a travaillé pour moi.
Vous ne pouvez pas incrément automatique de la
char
valeurs. Il devrait êtreint
oulong
(entiers ou des flottants points).Essayez avec cette,
Espère que cette aide