Ver Mensaje Individual
  #13 (permalink)  
Antiguo 13/11/2010, 05:46
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Como splitar valor de columnas

Dos detalles:

1) Vamos al problema.
Cita:
edit, esto podria hacerse desde la aplicacion, pero en este caso es mucho mas practico hacerlo en la base de datos, ya que necesito atomicidad al insertar todos estos registros, que con una transaccion queda resuelto.
No necesitas un SP para resolver eso. Solamente necesitas un INSERT múltiple, que a su vez esté dentro de una transacción, y las transacciones pueden declararse por fuera de un SP perfectamente. En tu caso solamente necesitas tres sentencias:
Código MySQL:
Ver original
  1.  
  2. INSERT INTI tabla(campo) VALUES('1'), ('3'), ('9'), ('x'), ('y'), ('z'), ('2343');
  3.  
Estoy poniendo los números entre apóstrofes porque infiero que el campo a llenar es un VARCHAR, o de lo contrario no mandarías letras. Si no lo es, si es un numérico, los apóstrofes no van.
Si estás trabajando con PHP, cada una de estas sentencias es un mysql_query(), de los cuales en el segundo verificas si hubo un error o bien si la cantidad de registros insertados se corresponde con la cantidad de ítems, y en caso contrario en lugar de enviar COMMIT, envías ROLLBACK.

¿Se entiende la idea?

El único secreto que tiene esto es que los VALUES deben ser incorporados en un ciclo FOR/NEXT si se deben crear dinámicamente.

2) No postees una pregunta propia en un post ajeno cuando se trata de una pregunta nueva sin ser parte de la conversación que se ha ido produciendo. No es buena costumbre no sólo porque no es cortés, sino porque los moderadores suelen cerrar post viejos cuando alguien los resucita, y porque además uno no abre el post para ver tu pregunta, sino la pregunta del que inició el tema. Es como meterse en conversación ajena si pedir permiso.
Es mucho mejor, aunque el tema sea parecido, que abras un post nuevo. Siempre.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)