mysql - valeur - update sql




Comment modifier une colonne et changer la valeur par défaut? (4)

Dans le cas où ce qui précède ne fonctionne pas pour vous (par exemple: vous travaillez avec un nouveau SQL ou Azure ), essayez ce qui suit:

1) supprimer la contrainte de colonne existante (le cas échéant):

ALTER TABLE [table_name] DROP CONSTRAINT DF_my_constraint

2) créez un nouveau:

ALTER TABLE [table_name] ADD CONSTRAINT DF_my_constraint  DEFAULT getdate() FOR column_name;

J'ai l'erreur suivante en essayant de modifier le type de données d'une colonne et de définir une nouvelle valeur par défaut:

ALTER TABLE foobar_data ALTER COLUMN col VARCHAR(255) NOT NULL SET DEFAULT '{}';

ERREUR 1064 (42000): Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'VARCHAR (255) NOT NULL SET DEFAULT' {} '' à la ligne 1


En guise de suivi, si vous voulez juste définir une valeur par défaut, assurez-vous que vous pouvez utiliser la syntaxe ALTER .. SET. Juste ne mettez pas tous les autres trucs là-dedans. Si vous mettez le reste de la définition de colonne, utilisez la syntaxe MODIFY ou CHANGE selon la réponse acceptée.

Quoi qu'il en soit, la syntaxe ALTER pour définir une colonne par défaut, (puisque c'est ce que je cherchais quand je suis arrivé ici):

ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT 'literal';

Pour lequel 'literal' pourrait aussi être un nombre (par exemple ...SET DEFAULT 0 ). Je n'ai pas essayé avec ...SET DEFAULT CURRENT_TIMESTAMP mais pourquoi pas hein?


Si vous voulez ajouter une valeur par défaut pour une colonne déjà créée, cela fonctionne pour moi:

ALTER TABLE Persons
ALTER credit SET DEFAULT 0.0';

ALTER TABLE foobar_data MODIFY COLUMN col VARCHAR(255) NOT NULL DEFAULT '{}';

Une seconde possibilité qui fait de même (merci à juergen_d):

ALTER TABLE foobar_data CHANGE COLUMN col col VARCHAR(255) NOT NULL DEFAULT '{}';






sql