elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  [SOL] Insert into select ... mysql
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOL] Insert into select ... mysql  (Leído 11,438 veces)
Cioouw

Desconectado Desconectado

Mensajes: 23


Ver Perfil
[SOL] Insert into select ... mysql
« en: 20 Abril 2010, 04:19 am »

Quisiera insertar de la siguiente forma

Insert into tabla_A (idtablaB,cualquier_caracter) select idtablaB from tablaB

Me muestra error porque falta definir el valor para la columna cualquier_caracter, como hago para solucionar este error.

Gracias.


« Última modificación: 22 Abril 2010, 03:24 am por Cioouw » En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Insert into select ... mysql
« Respuesta #1 en: 20 Abril 2010, 14:45 pm »

Efectivamente te falta definir otra columna  :-*

Citar
Insert into tabla_A (idtablaB,cualquier_caracter) select idtablaB from tablaB

Inserta en la Tabla Tal(campo1, campo2) seleccioname campo1 de la tabla Cual...

Y campo2 se queda vacio????  Estas peticionando insertar 2 campos (campo1, campo2) sin embargo solo estas solicitando 1 de los dos (campo1).

 :P


En línea

Cioouw

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Insert into select ... mysql
« Respuesta #2 en: 20 Abril 2010, 15:44 pm »

Eso es porque no se como insertar el segundo campo, el problema esta en que el segundo campo no se encuentra en ningun campo de la tabla_B sino que es una variable que yo defino....

Gracias.
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Insert into select ... mysql
« Respuesta #3 en: 20 Abril 2010, 16:07 pm »

Es que como lo estas haciendo ahi, el segundo campo esta sin valor alguno, sin embargo lo estas asignando aunque no tenga valor, y eso literalmente no se puede  :rolleyes:

No se con que lenguaje de programacion estas lidiando, pero supongamos que tienes una variable ya definida entonces seria algo como:


insert into tabla_A(idtablaB, $Tu_Variable) select  idtablaB from tablaB

Aca el campo idtablaB se rellenara con el campo idtablaB de la tablaB, y $Tu_Variable llenara el campo siguiente (el proximo) que le sigue a idtablaB.

Ahora ten pendiente que si este proximo campo tiene el atributo UNIQUE o es un PRIMARY KEY no aceptara valores repetidos... si es Primary Key nisiquiera nulos, si es UNIQUE puede aceptar nulos repetidos depende si le extendieron el atributo con un NOT NULL al campo al final.. pero ten esto muy en cuenta, otra cosa si tu variable tiene 1 solo valor ese valor se repetira hasta que se llene el otro campo, a no ser que hagas un for donde tu variable sea un arreglo.. pero entonces tu variable deberia tener una cantidad de valores iguales a los registros de idtablaB para que concuerden, sino habra algun que otro valor repetido o Nulo en el campo 'proximo'.
« Última modificación: 20 Abril 2010, 16:13 pm por ^Tifa^ » En línea

Cioouw

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Insert into select ... mysql
« Respuesta #4 en: 20 Abril 2010, 16:28 pm »

Haber ...

mi tablaA tiene la siguiente estructura:

codigo int primary key auto_increment,
idtablaB int foreign key references,
idusuario int foreign key references

tengo un procedimiento donde se envia el idusuario, entonces he tratado lo siguiente:

create procedure ins(in idusu int)
begin
insert into tablaA(idtablaB,idusuario) select idtablaB from tablaB, idusu; ... pero esto me retorna error .. esperose entienda...
end
En línea

ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Re: Insert into select ... mysql
« Respuesta #5 en: 20 Abril 2010, 16:59 pm »

Haber ...

mi tablaA tiene la siguiente estructura:

codigo int primary key auto_increment,
idtablaB int foreign key references,
idusuario int foreign key references

tengo un procedimiento donde se envia el idusuario, entonces he tratado lo siguiente:

create procedure ins(in idusu int)
begin
insert into tablaA(idtablaB,idusuario) select idtablaB from tablaB, idusu; ... pero esto me retorna error .. esperose entienda...
end

El error te lo retorna porque estas indicando que haras el Insert en 2 campos de la tablaA  y en la tablaB solo muestras un solo campo... Presumo que es error de tipeo tuyo... Debería ser asi...

Código
  1. CREATE PROCEDURE ins(IN idusu INT)
  2. BEGIN
  3. INSERT INTO tablaA(idtablaB,idusuario) SELECT idtablaB, idusu FROM tablaB;
  4. END
  5.  
En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
Cioouw

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Insert into select ... mysql
« Respuesta #6 en: 21 Abril 2010, 00:06 am »

idusu no es un campo de la tablaB sino que es una variable que yo defino. Y no es error de tipeo ... lo escribi asi xq no se como hacer para insertar el campo idtablaB de la query con el valor de idusu.

 :rolleyes: :rolleyes:
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Insert into select ... mysql
« Respuesta #7 en: 21 Abril 2010, 16:25 pm »

Sabemos que no es un campo de la segunda tabla Cioouw  ;)  es una variable (El parametro de hecho que le pasas al procedimiento), pero por sintaxis debes ponerlo como ssccaann43 te ha recomendado  y porque no estas pasandole un segundo campo o campo inexistente de la Tabla2 sino que estas pasandole 1 valor como segundo campo... es todo  ;)
« Última modificación: 21 Abril 2010, 16:43 pm por ^Tifa^ » En línea

ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Re: Insert into select ... mysql
« Respuesta #8 en: 21 Abril 2010, 17:13 pm »

Sabemos que no es un campo de la segunda tabla Cioouw  ;)  es una variable (El parametro de hecho que le pasas al procedimiento), pero por sintaxis debes ponerlo como ssccaann43 te ha recomendado  y porque no estas pasandole un segundo campo o campo inexistente de la Tabla2 sino que estas pasandole 1 valor como segundo campo... es todo  ;)

Te me adelantaste mi ovejita negra...! Jaja XD
En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
Cioouw

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Insert into select ... mysql
« Respuesta #9 en: 22 Abril 2010, 03:24 am »

SOlucionado.-
Gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Insert Retrazado en MySQL « 1 2 »
Bases de Datos
Skeletron 11 9,688 Último mensaje 18 Enero 2011, 19:30 pm
por Skeletron
Java + NetBeans + Mysql. Problema con Insert.
Java
Lain0x 6 9,441 Último mensaje 29 Abril 2013, 05:11 am
por yonybrondy
Problema con INSERT MySQL y VB.net (2003 y 2010)
.NET (C#, VB.NET, ASP)
Dreamcacher 4 4,340 Último mensaje 28 Enero 2012, 03:33 am
por Graphixx
SQL, Problema con unos SELECT en un INSERT
Bases de Datos
llAudioslavell 2 5,557 Último mensaje 10 Julio 2013, 21:18 pm
por jrivam
clausula OUTPUT en sentencias INSERT de mySQL
Bases de Datos
peib0l 9 6,563 Último mensaje 2 Octubre 2014, 01:00 am
por peib0l
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines