MySQL - Poner en una columna positivo y negativo.

 
Vista:

Poner en una columna positivo y negativo.

Publicado por Iván (4 intervenciones) el 13/01/2021 13:39:47
Hola buenos días,

Estoy intentando en mysql workbench 8 hacer lo siguiente en un alter tablet para modificar una columna y no soy capaz. Si .e pudierais echar una mano os lo agradecería. Lo que quiero hacer es lo siguiente:
La columna resultado puede contener únicamente uno de los valores siguientes: positivo o negativo.

Un saludo y gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Poner en una columna positivo y negativo.

Publicado por anonymous (59 intervenciones) el 13/01/2021 16:52:59
1
ALTER TABLE TuTabla ADD CONSTRAINT CK_TipoValor CHECK (TuColumna IN ('Positivo', 'Negativo'));

Donde TuTabla es el nombre de tu estructura y TuColumna es el nombre de la columna a modificar

Sin embargo yo pensaría que esa columna debería ser un char y manejar + o - y así ahorras espacio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Poner en una columna positivo y negativo.

Publicado por Iván (4 intervenciones) el 13/01/2021 19:44:35
Muchisimas gracias me ha funcionado y ahora estoy atascado aquí me pide esto:
Añade una clave artificial denominada CodigoResultado, cuyos valores se incrementen automáticamente. Mantén el resto de restricciones de la tabla
ESTO ES LO QUE HE PUESTO Y ME DA ERROR CREO QUE VOY MAL ENCAMINADO

ADD COLUMN ..... INT(11) AUTO_INCREMENT NOT NULL PRIMARY KEY.

Muestra todos los índices de la tabla. Y HE PUESTO

SHOW INDEX FROM....
PERO ME DA ERROR.

UN SALUDO Y GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Poner en una columna positivo y negativo.

Publicado por anonymous (59 intervenciones) el 13/01/2021 20:16:52
Si esa estructura ya tiene una PK, te sacaría error, y si ya tienes datos almacenados en ella también te pone problema.

Lo que pienso es que debes mejor eliminar esa tabla aplicale un drop, elimina las que también estén relacionadas y crealas de nuevo, y cuando la crees, le dices así:

TuColumna int(4) NOT NULL AUTO_INCREMENT PRIMARY KEY

Acomoda tú el tamaño (4) de acuerdo al crecimiento que se tenga previsto para esa tabla, en el ejemplo lo puse de 4, pero ojo si es una tabla para ventas o de mucho crecimiento de registros, debes darle un valor más alto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Poner en una columna positivo y negativo.

Publicado por Iván (4 intervenciones) el 13/01/2021 20:27:43
Si lo más fácil sería borrar la tabla y hacerla de nuevo pero el ejercicio es modificarla pero sin borrar ninguna restricción que ya tiene la tabla ya tiene PRIMARY KEY e Index y me pide que cree una clave artificial que cuyos valores se incrementen automáticamente y manteniendo el resto de restricciones de la tabla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Poner en una columna positivo y negativo.

Publicado por anonymous (59 intervenciones) el 13/01/2021 21:39:22
un autoincremental normalmente se debe crear al comienzo al crear la tabla de cero, porque internamente el lleva un control de que consecutivo tiene, y si tu ya le ingresaste datos a esa tabla, no te va a dejar.

Tú puedes perfectamente recrear la tabla de nuevo con todas las restricciones que ya tienes, cópiate el script que tiene actualmente, y simplemente le adicionas lo del incremental.

Se podría tirar un procedimiento que actualice los registros hasta donde vayan y efectuar el alter, pero dandole un start del incremento desde el último +1. Mirate este enlace donde te indican como hacerlo:

https://www.techonthenet.com/mysql/auto_increment.php

Envíame por el interno el script de esa tabla, yo la miro si quieres
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar