MySQL - Insertar valores numericos en una tabla

 
Vista:

Insertar valores numericos en una tabla

Publicado por xander-Any (3 intervenciones) el 26/03/2018 22:48:31
hola,

estoy intentando insertar 50000 valores numéricos al azar en una tabla, pero me da error en la sintaxis con la funcion rand. alguien me podria decir como lo hago? el tipo de valor es decimal (1,1). 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
Val: 98
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Insertar valores numericos en una tabla

Publicado por Yamil (40 intervenciones) el 26/03/2018 22:53:14
Y cual es el error ? Prueba esto

SELECT CAST(RAND() AS DECIMAL(1,1));
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

Insertar valores numericos en una tabla

Publicado por xander-Any (3 intervenciones) el 26/03/2018 23:06:44
Estoy haciendo un ejercicio para insertar una columna con 50000 filas. Y luego esa columna alimentara otra columna de acuerdo a tres posibles condiciones.

La duda es que no se como agregar las 50000 filas sin insertar 1 a 1.
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
Val: 953
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Insertar valores numericos en una tabla

Publicado por Leonardo Josué (414 intervenciones) el 26/03/2018 23:25:44
Hola xander-Any:

Seguimos en las mismas: dices que tienes un error, pero no nos dices qué error es el que te aparece, dices que estás haciendo un ejercicio para inserta una columna con 5000 filas pero no nos pones tu código ¬¬

Lamentablemente en el foro no hay adivinos, por lo que resulta complicado ayudarte.

1
La duda es que no se como agregar las 50000 filas sin insertar 1 a 1.

MySQL maneja varios tipos de ciclos y bucles, como lo hacen los lenguajes de programación:

https://manuales.guebs.com/mysql-5.0/stored-procedures.html#flow-control-constructs

Estos los usas en cualquier procedimiento almacenado con la lógica que necesitas para hacer tu insert.

Si tienes problemas POSTEA LO QUE SEA QUE HAYAS INTENTADO DE CÓDIGO, no importa si está mal, marca error o no hace lo que quisieras. Si marca algún error POSTEA TAMBIÉN EL CÓDIGO DEL ERROR, para ayudarte a cambiar y/o corregir tu código.

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
0
Comentar

Insertar valores numericos en una tabla

Publicado por xander-Any (3 intervenciones) el 26/03/2018 23:56:07
tengo una tabla creada con dos columnas "A"y "B", en la columna A debo insertar 50.000 valores numéricos al azar y coloque este comando: insert into valor (A) values (rand ()), como hago para repetir esto 50.000 veces?

+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| A | decimal(1,1) | YES | | NULL | |
| B | decimal(1,1) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+

Además, cuando intento modificar el tipo de dato de (1,1) a (3,2) con la orden
alter table valor alter column A decimal (3,2); me sale el siguiente mensaje

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'decimal (3,2)' at line 1

el ejercicio que quiero resolver es este:

Si el valor de la primera columna (A) ... el de la segunda (B)...
A B
mayor que 0.9 la mitad que A
menor que 0.1 el triple que A
en otro caso A al cuadrado

Muchas gracias de antemano en lo que me puedas ayudar.

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
sin imagen de perfil
Val: 953
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Insertar valores numericos en una tabla

Publicado por Leonardo Josué (414 intervenciones) el 27/03/2018 00:18:16
Hola de nuevo:

Vayamos por partes, primero, para lo del ALTER TABLE, la parte del ALTER COLUMN está mal, ya que esta se utiliza SÓLO PARA CAMBIAR EL VALOR POR DEFECTO DE LA COLUMNA, creo que te conviene darle una revisada a la documentación oficial y a los ejemplos que vienen:

https://dev.mysql.com/doc/refman/5.7/en/alter-table.html
https://dev.mysql.com/doc/refman/5.7/en/alter-table-examples.html

de tal suerte, que para cambiar el TIPO, utilizas el operador MODIFY:

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 |
+-------+--------------+------+-----+---------+-------+
| A     | decimal(1,1) | YES  |     | NULL    |       |
| B     | decimal(1,1) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
 
mysql> ALTER TABLE tabla MODIFY A DECIMAL (3,2);
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0
 
mysql> DESC tabla;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| A     | decimal(3,2) | YES  |     | NULL    |       |
| B     | decimal(1,1) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

ahora para esto:

1
coloque este comando: insert into valor (A) values (rand ()), como hago para repetir esto 50.000 veces?

¿Checaste la liga que te puse en el post pasado? creo que no, pues no nos pones lo que intentaste hacer. Ahí aparecen ejemplos muy sencillos de cómo usar los distintos tipos de ciclos en un SP (ITERATE; WHILE, REPEAT, LOOP), puedes utilizar cualquiera de estos para hacer lo que quieres. y en el mismo ciclo, puedes agregar toda la lógica adicional para el cálculo de la columna B.

Haz la prueba y nos comentas, y si el mismo consejo que en el post anterior, si continuas con problemas posteas lo que intentaste hacer y con gusto te ayudamos a corregir y/o completar lo que haga falta.

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
0
Comentar