| Por: pedro almaguer | | 23/5/2002
|
Mi necesidad es saber como puedo insertar a una tabla 20 datos como este ejemplo
INSERT INTO TPAIS (ID,PAIS) VALUES (1,'Mexico');
INSERT INTO TPAIS (ID,PAIS) VALUES (2,'China');
INSERT INTO TPAIS (ID,PAIS) VALUES (3,'EUA');
INSERT INTO TPAIS (ID,PAIS) VALUES (4,'Espania');
INSERT INTO TPAIS (ID,PAIS) VALUES (5,'Estonia');
pero metiéndolos de un jalon, osea no tenerlo que meter uno por uno
Respuesta:
Yo creo que no puedes hacer eso en una sola sentencia, por lo menos que yo recuerde. De todos modos, ejecutar tantos insert no ocupará mucho tiempo de procesamiento y las páginas deberían funcionar rápida y correctamente.
| Por: Pablo Manuel | | 19/6/2002
|
por que no lo haces con un FOR, si te das cuenta todas las lineas son iguales menos el id y el pais. Por lo menos si tuvieses la información que pretendes insertar en una estructura de datos sería una opción válida.
Creo ke la unica forma de hacerlo es creando un fichero .sql en el bloc de notas, y en el ke (copiando y pegando) pongas todo eso.Despues le dices al SQL*PLUS ke t abra ese fichero y ya esta.
podes hacer un FOR como dice el amigo de esta manera en ASP:
<%
dim pais(3) 'este es un arreglo con 4 lugares
dim id(3)
pais(0)="Argentina"
pais(1)="Peru"
pais(2)="Uruguay"
pais(3)="Bolivia"
id(0)=1
id(1)=2
id(2)=48
id(3)=5
for i=0 to i=3
INSERT INTO TPAIS (ID,PAIS) VALUES (id(i),pais(i))
next
%>
espero que sirva
Pero, si declaraste el id como autonuméricó, sólo tienes que hace un for con los países e ir insertándolos uno detrás de otro.
MMh tengo un pequeño pero molesto problema. Las consultas rutinarias, como escribir los registros me van bien, pero tengo problemas cuando quiero crear/borrar registros.
Todo esta bien, lo he comprobado cien veces, pero por mas que lo intento, me devuelve un error de
"la operacion debe realizar una consulta actualizable".
Que puedo hacer?por favor ayuda, muy bueno el manual, de verdad, en solo un mes he aprendido javascript, vbscript, y ahora estoy empezando en asp y sql
ya solucione el problema, el caso es que en el IIS del xp, hay un error frecuente, para corregirlo, todo lo que hay que hacer es: escribir en buscar "internet information server", un vez abierto, abrir las propiedades de la carpeta web, y en un apartado de seguridad o algo asi, vas a cambiar, y desactivas lo "anonimo", despues de eso todo usuario con iis y xp no tendra problemas;) venga un saludo a todos
Alguien puede decirme por favor como insertar una imagen o un archivo de imagen en un campo de mi tabla sql, mi tabla de inventarios debe contener la foto de mis productos para despues visualizarla.
Por su ayuda, muchas gracias.
| Por: Carlos Marcelo Aguilar | | 20/11/2004
|
Me parece que un SELECT(TABLA.CAMPO.*) FROM tabla ORDER BY campo ASC INTO CURSOR XXX WHERE..., esto es mejor que un LOCATE FOR, osea mejor que usat un índice.
<?
for($i;$i<20;$i++){
INSERT INTO TPAIS (ID,PAIS) VALUES ($i,'Mexico');
}
?>
Meter esto de una tacada:
INSERT INTO TPAIS (ID,PAIS) VALUES (1,'Mexico');
INSERT INTO TPAIS (ID,PAIS) VALUES (2,'China');
INSERT INTO TPAIS (ID,PAIS) VALUES (3,'EUA');
INSERT INTO TPAIS (ID,PAIS) VALUES (4,'Espania');
INSERT INTO TPAIS (ID,PAIS) VALUES (5,'Estonia');
Se puede. De hecho el phpmyadmin lo hace al exportar si lo configuras.
INSERT INTO TPAIS (ID,PAIS) VALUES (1,'Mexico'), (2,'China'), (3,'EUA'), (4,'Espania'), (5,'Estonia');
No se recomienda insertar más de 20 de golpe por la perdida de rendimiento.
Si se van a efectuar muchas inserciones (inserción masiva) en mysql, se deben enviar tacadas de unas 20 consultas que inserten 20 registros cada una.
Entre tacada y tacada hay que bloquear y desbloquear las tablas.
LOCK TABLES;
Si se siguen las indicaciones, se gana una aceleración de mysql en la transacción de unas 2-3 veces sobre la forma convencional para inserciones de maś de 10000 registros.
Para más información, revisad el apartado del manual online de MySQl, los apartados de INSERT INTO y lOCK TABLES.
Puedes automatizar esa entrada empleando Power Builder, relacionas estre programa con la BBDD e importas a una tabla temporal con un campo unico desde el origen de los datos, y el progrma automaticamente convierte las linesas de texto en inserts de SQl, incluso te genera una tabla temporal de un campo unico donde inserta todo.
Luego defines un insert en el que cortas la informacion en diferentes cadenas para almacenarla en los campos correspondientes, y lo ejecutas, con eso ya tienes creados todos tus registros en la tabla que querias, te lo digo por que 20 ergistros no procupan mucho, pero en el caso de grandes volumenes, cientos o miles....
A mi me va muy bien asi
yo creo que un ciclo For es lo mas adecuado por que de esa manera puedes insertar los registros nesesarioas y si no sirve lo intento de otra forma y se los paso pero si nesesita un programa para aserlo
SI POSEES OTRA TABLA CON LOS DATOS, PUEDES INSERTARLO MEDIANTE UN
INSERT INTO nombre_tabla
(subconsulta);
chulino | ingresar varios datos a una tabla con un solo insert
| 18/4/2009 |
si la tabla ala que vas a ingresar los datos esta vacia podrias acer esto:
use Empresa;
insert ignore into Departamento values
('10','Cuentas','New York'),
('20','Investigacion','Dallas'),
('30','Ventas','Chicago'),
('40','Operaciones','Boston');
#donde la tabla Departamento tiene solo 3 parametros y tienes que ingresar exactamente de tres parametros en tres parametros, esto esta en un bloc de notas y se manda llamar
| NO LOGRO AGRAGAR EL REGISTRO
| 16/10/2009 |
HICE MI PAGINA DE REGISRO DE USURIO
<td>Insertar un registro
<br>
<FORM METHOD="POST" ACTION="insertar.php">
Nombre<br>
<INPUT TYPE="TEXT" NAME="nombre"><br>
Apellido<br>
<INPUT TYPE="TEXT" NAME="apellido"><br>
Fecha de Nacimiento<br>
<INPUT TYPE="text" NAME="nacimiento"><br>
Teléfono<br>
<INPUT TYPE="TEXT" NAME="telefono"><br>
Correo Electronico<br>
<INPUT TYPE="TEXT" NAME="email"><br>
Pais<br>
<INPUT TYPE="TEXT" NAME="pais"><br>
Ciudad<br>
<INPUT TYPE="TEXT" NAME="ciudad"><br>
codigo postal<br>
<INPUT TYPE="TEXT" NAME="cp"><br>
<INPUT TYPE="SUBMIT" value="Insertar">
</FORM>
</td>
</tr>
LUEGO LA DE INSERT.PHP
<?php
//Conexion con la base
mysql_connect("localhost","edgaralzolay","11226283");
//selección de la base de datos con la que vamos a trabajar
mysql_select_db("usuarios");
//Insert Into nombre_tabla (nombre_campo1, nombre_campo2,...) Values (valor_campo1, valor_campo2...)
//Ejecucion de la sentencia SQL
Insert Into registro (nombre, apellidos, nacimiento, telefono, email, pais, ciudad, cp) values ('$nombre','$apellidos','$nacimiento','$telefono','$emal','$pais','$ciudad','$cp');
?>
Y NO LOGRO QUE ME AGREGUE EL REGISTRO DE UN USURIOS, SERA QUE EL ENLA CON LA BASE DE DATO ESTA MALO, LA TENGO GRABADO EN UN SITIO QUE NO ES , QUE HE HECHO MAL, ALGUIEN QUE ME PUEDA AYUDAR
en la base de dato al id, tienes que ponerle AUTO_INCREMENT
humusje... | Más de 2 registros a un solo campo
| 22/1/2010 |
Muy buen tutorial, felicidades.
Tengo una duda.
Cómo puedo agregar varios registros a un solo campo?
tabla user
id
name
user
pass
tabla admin
id
name
user
pass
add
Quiero agregar varios registros (ids de usuarios) al campo "add" de manera que dentro del campo add pueda quedar 1, 2, 3, 4, 5 y al momento de hacer el query me haga saber que el usuario Juan (por poner un ejemplo) tiene a 5 usuarios bajo su mando.
Ojala me haya explicado.
Saludos.
torro | para GUAYO
| 08/1/2011 |
tienes dos errores ala vista.
1°:- tu ACTION en el FORM no hace referencia a tu programa que hace conexion a tu BD osea tu programa es INSERT.php y tu ACTION="insertar".
2°:-Las Variables no pueden ser pasadas del FORM al programa .PHP si primero no son recividas osea esto en el .php
$nombre=$_POST("nombre");
| Insert en Access
| 29/9/2011 |
Colegas, estoy haciendo un INSERT en una base de datos Access, sin embargo la excepción me dice que hay un error de sintaxis.
Este es el código
string agregar = "INSERT INTO Users (Login,Password,IsActive,UserTypeId,LastAccess,CreatedDate,UdateDate,Version) Values(@Login,@Password,@UserTypeId,@LastAccess,@CreatedDate,@UdateDate,@Version)";
OleDbCommand comando = new OleDbCommand(agregar,cone);
comando.Parameters.Add(new OleDbParameter("@Login", OleDbType.VarChar, 10));
comando.Parameters["@Login"].Value = login;
comando.Parameters.Add(new OleDbParameter("@Password", OleDbType.VarChar, 10));
comando.Parameters["@Password"].Value = passw;
comando.Parameters.Add(new OleDbParameter("@IsActive", OleDbType.Numeric, 1));
comando.Parameters["@IsActive"].Value = activo;
comando.Parameters.Add(new OleDbParameter("@UserTypeId", OleDbType.VarChar,10));
comando.Parameters["@UserTypeId"].Value = tipousuario;
comando.Parameters.Add(new OleDbParameter("@LastAccess", OleDbType.VarChar,10 ));
comando.Parameters["@LastAccess"].Value = ultimoacceso;
comando.Parameters.Add(new OleDbParameter("@CreatedDate", OleDbType.VarChar, 10));
comando.Parameters["@CreatedDate"].Value = fechacreacion;
comando.Parameters.Add(new OleDbParameter("@UdateDate", OleDbType.VarChar, 10));
comando.Parameters["@UdateDate"].Value = actualizado;
comando.Parameters.Add(new OleDbParameter("@Version", OleDbType.VarChar,10));
comando.Parameters["@Version"].Value = version;
comando.Connection.Open();
comando.ExecuteNonQuery();
comando.Connection.Close();
Mi necesidad es saber como puedo insertar a una tabla 20 datos como este ejemplo
INSERT INTO TPAIS (ID,PAIS) VALUES (1,'Mexico');
INSERT INTO TPAIS (ID,PAIS) VALUES (2,'China');
INSERT INTO TPAIS (ID,PAIS) VALUES (3,'EUA');
INSERT INTO TPAIS (ID,PAIS) VALUES (4,'Espania');
INSERT INTO TPAIS (ID,PAIS) VALUES (5,'Estonia');
pero metiéndolos de un jalon, osea no tenerlo que meter uno por uno
Sabes, existe una forma: si tienes esa información en un Excel (si no la tienes puedes crear un archivo excel con la información) puedes importarla a tu BD el procedimiento es simple y te ahorra el trabajo de hacer todo un Query Insert por Insert. Saludos.
| De la misma forma
| 09/5/2012 |
HO0LAA..YA SE COMO INGRESAR LOS OTROS REGISTROS...PERO CUANDO LLEGUE A ESTO ME ENREDE..
create table escribe
(
codigoautor varchar(15) not null foreign key references autor(codigoautor),
codigolibro varchar(10) not null foreign key references libro(codigolibro)
como ingreso registros en este campo..
grax..por adelantadoo..=)
Si lo que quieres es rellenar esos campos es muy simple, es de la misma manera que todos los demas solo hay una diferencia, que ese dato tiene que existir en la tabla que hace referencia, por ejemplo si en la tabla Autor hay un codigoautor = 'A01' entonces cuando ingreses los datos de la tabla escribe el codigo de autor debe ser igual a este codigoautor que se hace referencia, en todo caso quedaria asi:
insert into escribe (codigoautor,codigolibro) values ('A01','L01')
Y por su puesto recordarte que estos codigos deben existir en la tabla de origen osea en Autor y en Libro, nada mas Saludos.