J'ai un nom de table appelé "Personne" avec les noms de colonnes suivants
P_Id(int),
LastName(varchar),
FirstName (varchar).
J'ai oublié de donner la contrainte NOT NULL
à P_Id
.
Maintenant, j'ai essayé avec la requête suivante d'ajouter NOT NULL
Constraint à une colonne existante appelée P_Id
,
1. ALTER TABLE Person MODIFY (P_Id NOT NULL);
2. ALTER TABLE Person ADD CONSTRAINT NOT NULL NOT NULL (P_Id);
Je reçois une erreur de syntaxe ....
Utilisez simplement une requête ALTER TABLE... MODIFY...
et ajoutez _NOT NULL
_ à votre définition de colonne existante. Par exemple:
_ALTER TABLE Person MODIFY P_Id INT(11) NOT NULL;
_
Attention: vous devez à nouveau spécifier la définition de colonne complète lors de l'utilisation d'une requête MODIFY
. Si votre colonne a, par exemple, une valeur DEFAULT
ou un commentaire de colonne, vous devez la spécifier dans l'instruction MODIFY
avec le type de données et le _NOT NULL
_. être perdu. Pour éviter de tels incidents, la méthode la plus sûre consiste à copier la définition de colonne à partir du résultat d'une requête _SHOW CREATE TABLE YourTable
_, à la modifier pour inclure la contrainte _NOT NULL
_ et à la coller dans votre requête _ALTER TABLE... MODIFY...
_.
Essayez ceci, vous saurez faire la différence entre changer et modifier,
ALTER TABLE table_name CHANGE curr_column_name new_column_name new_column_datatype [constrints]
ALTER TABLE table_name MODIFY column_name new_column_datatype [constraints]
MODIFY
pour changer, mais l'inverse n'est pas possible.CHANGE
.MODIFY
. Vous ne pouvez pas modifier le nom de la colonne à l'aide de cette instruction.J'espère que j'ai bien expliqué en détail.