Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Crear archivo con sentencias sql

Estas en el tema de Crear archivo con sentencias sql en el foro de Mysql en Foros del Web. Hola, buenos días... Esta es una duda que he dejado pasar y de la cuál no encontrado como hacer lo que necesito... les explico. En ...
  #1 (permalink)  
Antiguo 29/10/2012, 09:42
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 827
Antigüedad: 16 años
Puntos: 25
Crear archivo con sentencias sql

Hola, buenos días...

Esta es una duda que he dejado pasar y de la cuál no encontrado como hacer lo que necesito... les explico.

En ocasiones quiero subir a mi base de datos varias sentencias diferentes por "x" problema, por ejemplo, tengo un cliente que cada mes hace modificaciones a sus productos (una base de datos de alrededor de 25 mil registros), pero es necesario insertar, borrar o actualizar esos registros. Me gustaría hacerlo en un script de sql para hacerlo todo una vez y no tener que realizarlo por separado.

En SQL Server, me era posible hacerlo, no sé si sea lo mismo.

De antemano, gracias por sus comentarios... Saludos!!
  #2 (permalink)  
Antiguo 29/10/2012, 09:46
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 13 años, 5 meses
Puntos: 2656
Respuesta: Crear archivo con sentencias sql

Yo he hecho de esos varias veces, sin mayores problemas.
¿Has intentado algo? ¿Probaste crear uno y hacerlo correr?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 29/10/2012, 10:14
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 827
Antigüedad: 16 años
Puntos: 25
Respuesta: Crear archivo con sentencias sql

Si, hice algunas pruebas, como por ejemplo puse un delete y un insert la primera ocasión, de la cuál recibí un error... hice lo siguiente:

Delete * from productos Where id_producto = '123456'

y puse en seguida...

Insert into productos ....

por citar un ejemplo, y recibí error.

Es probable que no estructuré bien el archivo, alguna forma de comenzarlo, algo se me paso es lo más probable.
  #4 (permalink)  
Antiguo 29/10/2012, 10:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 13 años, 5 meses
Puntos: 2656
Respuesta: Crear archivo con sentencias sql

¿Te acordaste que en MySQL, toadas las sentencias deben terminar en punto y coma (;)?
¿Y que además los scripts deben ser guardados con charset UTF-8?

Eso por empezar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 29/10/2012, 10:53
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 827
Antigüedad: 16 años
Puntos: 25
Respuesta: Crear archivo con sentencias sql

Te refieres a hacer esto...
Código SQL:
Ver original
  1. DELETE * FROM productos WHERE id_productos = 1;
  2. DELETE * FROM productos WHERE id_productos = 2;
  3. DELETE * FROM productos WHERE id_productos = 3;
  4. DELETE * FROM productos WHERE id_productos = 4;
  5. DELETE * FROM productos WHERE id_productos = n;
  6.  
  7. INSERT INTO productos (campo2, campo3...) VALUES ('campo2', 'campo3'...) WHERE id_producto = '1';
  8. INSERT INTO productos (campo2, campo3...) VALUES ('campo2', 'campo3'...) WHERE id_producto = '2';
  9. INSERT INTO productos (campo2, campo3...) VALUES ('campo2', 'campo3'...) WHERE id_producto = '3';
  10. INSERT INTO productos (campo2, campo3...) VALUES ('campo2', 'campo3'...) WHERE id_producto = 'n';
y así si tengo más sentencias?

No, no lo intenté con punto y coma al final :/

Última edición por gnzsoloyo; 29/10/2012 a las 11:01
  #6 (permalink)  
Antiguo 29/10/2012, 11:04
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 13 años, 5 meses
Puntos: 2656
Respuesta: Crear archivo con sentencias sql

Esencialmente, si.
En SQL Server el salto de linea es suficiente para indicar ejecución de sentencia, pero no así para otros DBMS, como es el caso de Oracle, MySQL, Postgre, etc. En estos, para evitar confusiones sintácticas y mejorar la escritura, se necesitan terminadores de sentencias.
Por otro lado, tienes que tener en cuenta que hay muchas funciones, operadores y cláusulas que no son estandar en SQL Server o en los demás DBMS, por lo que antes de ejecutar un script tienes que tener cuidado en verificar que las sentencias estén correctamente escritas para la sintaxis usada en MySQL.
En este caso mi recomendación es que instales y uses el MySQL Workbench, el cual tiene un revisor sintáctico de SQL automático, y te puede facilitar no sólo la escritura, sino también las pruebas del script, antes de usarlo.
Otro detalle que tienes que tener en cuenta es que el uso de las variables no es igual en MySQL que en SQL Server. Ese es un tema que hay que ver aparte.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 29/10/2012, 11:10
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 827
Antigüedad: 16 años
Puntos: 25
Respuesta: Crear archivo con sentencias sql

Entiendo... le daré otra leída a la documentación de MySQL.

Te agradezco por la atención y pondré en práctica lo que comentas, que tengas un excelente día!! :)

Etiquetas: registros, sentencias, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:59.