MySQL - Comment augmenter varchar la taille d'une colonne existante dans une base de données sans casser les données existantes?
J'ai une colonne qui est actuellement varchar(100)
et je veux le faire 10000
.
est aussi simple que
alter table table_name set column col_name varchar (10000);
J'ai peur de corrompre la sortie de données. Vais-je être ok si j'exécute cette requête? Ou dois-je faire je alter
la colonne d'une autre façon?
Merci!
- N'oubliez pas d'inclure tous les autres attributs que la colonne a déjà! Par exemple
default null
ou ce que s'affiche lorsque vous faites unshow create table someTableName
- double possible de Comment puis-je modifier la taille de la colonne dans une table mysql?
Vous devez vous connecter pour publier un commentaire.
J'ai l'habitude d'utiliser cette instruction:
Mais, je pense que l'ENSEMBLE sera trop de travail, n'ont jamais essayé. 🙂
ALTER TABLE `tablename` ALTER COLUMN `columnname` TYPE VARCHAR(64);
je le mentionne car une recherche de ne pas mentionner mysql m'a amené iciIl est sûr d'augmenter la taille de votre colonne de type varchar. Vous n'aurez pas corrompre vos données.
Si elle contribue à la paix de votre esprit, gardez à l'esprit, vous pouvez toujours exécuter une sauvegarde de base de données avant de modifier vos structures de données.
Par le chemin, la syntaxe correcte est:
Aussi, si la colonne préalablement autorisés/ne pas autoriser les valeurs null, vous devez ajouter la syntaxe appropriée à la fin de l'instruction alter table, après le type de la colonne.
show create table someTableName
pour déterminer les caractéristiques supplémentaires de la colonne avant de le modifier!pt-online-schema-change
. Il fait une copie de la table avec le changement souhaité, puis renomme la copie à l'original du nom de la table. Obv vous pouvez le faire vous-même, mais il a un tas d'autres belles contrôles de sécurité, aussi.CHANGE
.J'aimerais expliquer les différentes alter table syntaxes - Voir le Documentation de MySQL
Pour ajouter/supprimer les valeurs par défaut sur une colonne:
Pour renommer une colonne, en changeant le type de données et éventuellement de changer l'ordre des colonnes:
Pour la modification d'une colonne du type de données et éventuellement de changer l'ordre des colonnes:
alter
,change
etmodify
) dans des situations variées.Pour moi travaillé celui-ci:
ALTER TABLE nomtable MODIFIER le nom du champ de type VARCHAR(128) not NULL;
Je suis de l'utilisation de mysql et en dessous de la syntaxe a bien fonctionné pour moi,
Pour moi cela a fonctionné à-
ALTER TABLE nom_table
ALTER COLUMN column_name VARCHAR(50)
utiliser cette syntaxe:
alter table nom_table modifier la colonne nom_col varchar (10000);