Autor
|
Tema: [SOL] Insert into select ... mysql (Leído 11,438 veces)
|
Cioouw
Desconectado
Mensajes: 23
|
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
Mensajes: 2.804
|
Efectivamente te falta definir otra columna 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).
|
|
|
En línea
|
|
|
|
Cioouw
Desconectado
Mensajes: 23
|
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
Mensajes: 2.804
|
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 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
Mensajes: 23
|
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
Mensajes: 792
¬¬
|
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... CREATE PROCEDURE ins(IN idusu INT) BEGIN INSERT INTO tablaA(idtablaB,idusuario) SELECT idtablaB, idusu FROM tablaB; END
|
|
|
En línea
|
- Miguel Núñez Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio... "I like ^TiFa^"
|
|
|
Cioouw
Desconectado
Mensajes: 23
|
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.
|
|
|
En línea
|
|
|
|
^Tifa^
Desconectado
Mensajes: 2.804
|
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
Mensajes: 792
¬¬
|
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
Mensajes: 23
|
SOlucionado.- Gracias.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Insert Retrazado en MySQL
« 1 2 »
Bases de Datos
|
Skeletron
|
11
|
9,688
|
18 Enero 2011, 19:30 pm
por Skeletron
|
|
|
Java + NetBeans + Mysql. Problema con Insert.
Java
|
Lain0x
|
6
|
9,441
|
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
|
28 Enero 2012, 03:33 am
por Graphixx
|
|
|
SQL, Problema con unos SELECT en un INSERT
Bases de Datos
|
llAudioslavell
|
2
|
5,557
|
10 Julio 2013, 21:18 pm
por jrivam
|
|
|
clausula OUTPUT en sentencias INSERT de mySQL
Bases de Datos
|
peib0l
|
9
|
6,563
|
2 Octubre 2014, 01:00 am
por peib0l
|
|