mysql - valor - modificar un campo




¿Cómo modificar una columna y cambiar el valor predeterminado? (4)

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;

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 '{}';






sql