| Por: pedro almaguer | | 23/5/02
|
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 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/04
|
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/09 |
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/09 |
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