valor tipo por not modificar editar defecto dato como columna campo cambiar auto_increment atributo alterar mysql sql

mysql - tipo - ¿Cómo modificar una columna y cambiar el valor predeterminado?



modificar el valor de un campo en mysql (5)

Como seguimiento, si solo quiere establecer un valor predeterminado, es bastante seguro que puede usar la sintaxis ALTER .. SET. Simplemente no pongas todas las otras cosas ahí. Si va a incluir el resto de la definición de columna, use la sintaxis MODIFICAR o CAMBIAR según la respuesta aceptada.

De todos modos, la sintaxis ALTER para establecer una columna por defecto, (ya que eso es lo que estaba buscando cuando vine aquí):

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

Para lo cual ''literal'' también podría ser un número (por ejemplo ...SET DEFAULT 0 ). No lo he intentado con ...SET DEFAULT CURRENT_TIMESTAMP pero ¿por qué no eh?

Recibí el siguiente error al intentar alterar el tipo de datos de una columna y establecer un nuevo valor predeterminado:

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

ERROR 1064 (42000): tiene un error en su sintaxis SQL; verifique el manual que corresponde a su versión del servidor MySQL para la sintaxis correcta para usar cerca de ''VARCHAR (255) NOT NULL SET DEFAULT'' {} '''' en la línea 1


En caso de que lo anterior no funcione para usted (es decir, si está trabajando con SQL o Azure nuevos ) intente lo siguiente:

1) eliminar la restricción de columna existente (si hay):

ALTER TABLE [table_name] DROP CONSTRAINT DF_my_constraint

2) crea uno nuevo:

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


Para DEFAULT CURRENT_TIMESTAMP:

ALTER TABLE tablename CHANGE COLUMN columnname1 columname1 DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE COLUMN columnname2 columname2 DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;

Tenga en cuenta la declaración de doble nombre de columna

Eliminando DEFAULT CURRENT_TIMESTAMP:

ALTER TABLE tablename ALTER COLUMN columnname1 DROP DEFAULT, ALTER COLUMN columnname2 DROPT DEFAULT;


Si desea agregar valor predeterminado para la columna ya creada, esto funciona para mí:

ALTER TABLE Persons ALTER credit SET DEFAULT 0.0'';


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

Una segunda posibilidad que hace lo mismo (gracias a juergen_d):

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