MySQL - Problema estableciendo tipo de dato DECMAL

 
Vista:
sin imagen de perfil
Val: 95
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Problema estableciendo tipo de dato DECMAL

Publicado por yaney (31 intervenciones) el 06/09/2018 12:22:06
Hola, esta es una pregunta quizás muy básica pero no hallo la respuesta.
Tengo una tabla en la que algunos campos son para almacenar números decimales. del tipo
99.99 por ejemplo
Cuando establezco el tipo de datos a DECIMAL(4,2) me lo guarda siempre como DECIMAL(4,0)
Cómo puedo resolver este problema, o por qué me sucede esto?

gracias de antemano por la atención.
saludos
Yaney
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
Val: 953
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Problema estableciendo tipo de dato DECMAL

Publicado por Leonardo Josué (414 intervenciones) el 11/09/2018 22:39:37
Hola Yaney:

No me queda claro cuál es el problema... quizás si nos mostraras el código SQL que estás tratando de ejecutar para modificar la tabla podríamos tratar de explicarte qué es lo que pasa... por lo pronto te comento lo siguiente:

1. Si tu tabla YA EXISTE y lo que quieres hacer es MODIFICAR EL TIPO DE CAMPO, entonces debes de tener cuidado con la información que ya está en la BD's. Lo más recomendable sería que la tabla estuviera VACÍA o en todo caso usar una tabla "de paso" para no perder la información, es decir, hacerlo en partes, primero creas una tabla como quieres que quede definida, después pasas la información de la tabla original a la tabla nueva, borras la tabla original y finalmente renombras la tabla nueva.

2. Debes de verificar que la tabla que intentas modificar NO TENGA REFERENCIAS TIPO LLAVE FORÁNEA sobre otras tablas, ya que de ser así, MySQL no te permitirá hacer el cambio. Si es así, entonces primero tendrías que deshabilitar los CONSTRAIN's para hacer los cambios y una vez realizados entonces volver a habilitarlos.

2. Como dije al inicio, no nos muestras el código que estás intentado hacer para establecer el tipo como DECIMAL (4,2)... si estás usando algún IDE como Workbench o SQLYog, te sugiero que trates de hacerlo por linea de comando... así, si hay algún mensaje de error o warning, la consola de MySQL te lo dirá... la sentencia sería más o menos así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
mysql> desc tabla;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | NO   |     | NULL    |       |
| campo | decimal(4,0) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.04 sec)
 
mysql> alter table tabla modify campo decimal (4, 2);
Query OK, 1 row affected (0.67 sec)
Records: 1  Duplicates: 0  Warnings: 0
 
mysql> desc tabla;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | NO   |     | NULL    |       |
| campo | decimal(4,2) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

es decir, al inicio el campo está como DECIMAL(4, 0), después del alter table queda como DECIMAL (4, 2).

Haz la prueba y nos comentas.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 95
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Problema estableciendo tipo de dato DECMAL

Publicado por yaney (31 intervenciones) el 13/09/2018 10:16:18
Hola Leonardo, el problema lo resolví reinstalando el appserv. Pues me pasaba solo en el servidor local. Al momento de crear la tabla y los campos, cuando iba a establecer el tipo de datos a decimal X,2, no lo aceptaba y ponía X,0.
Reinstalé appserv y todo está bien ahora.
Gracias por tu respuesta
Saludos
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