2012-08-01 17 views
6

¿Puedo usar LIMIT 2 en MySQL INSERT query? p.Use "LIMIT" en MySQL "INSERT"?

INSERT INTO MyTable 
    (user_name,password) 
VALUES 
    (john,366543), 
    (sam,654654) 
LIMIT 2 

Probé y su diciendo

`#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 2' at line 1` 

Respuesta

0

LÍMITE 2 sólo funcionará con ciertos valores de NO

7

Usted puede hacer esto mediante el INSERT ... SELECT syntax:

INSERT INTO MyTable (user_name, password) 
SELECT 'john', '366543' 
UNION ALL SELECT 'sam', '654654' 
LIMIT 2; 

No sé por qué querrías ... tal vez si tuvieras una lista muy larga de valores estáticos que quieras ted para controlar fácilmente al establecer el límite?

EDIT: notas Como pst, el LIMIT es en realidad parte de la SELECT, y no tiene nada que ver con el INSERT sí ...

+0

@pst Gracias por la sugerencia; He actualizado la respuesta para notar esto ... –

+1

¿Crees que sería obvio, verdad? Si desea limitar la cantidad de datos que está insertando, no proporcione tantos valores. 'LIMIT' en una llamada' INSERT INTO ... SELECT FROM' es relevante como se demuestra aquí. – tadman

+0

LIMIT se puede utilizar con ACTUALIZAR y ELIMINAR también. Entonces, no es solo parte de SELECT. – Andrew

-2

no No se puede utilizar en la consulta de inserción límite

-1

que sé es una publicación anterior, pero puede usar el bucle foreach para limitar la instrucción de inserción. Algo así como:

$i = '1'; 
    foreach($item as $item){ 
     IF($i <= '2'){ 
      IF ($stmt = $connection->prepare("INSERT IGNORE INTO `db`.`table`(`item`) VALUES (?)")) { 

       /* Bind our params */ 
       $stmt->bind_param('s' , $item); 

       $stmt->execute(); 

       $stmt->close(); 
      } 
     } 
     $i++; 
    } 
0

Parcialmente Si está introduciendo sus datos de otra tabla que el tiempo que necesitamos para establecer límites para la inserción de un número específico de datos

 insert into cas_user (cas_name) select cas_name from users limit 1,5; 

Esperamos que esto ayude.

0

Si está intentando insertar grandes cantidades de datos en partes utilizando el límite, está operando dentro de las limitaciones iniciales establecidas por MySQL.

Intente aumentar los valores de las limitaciones más bien: PFB

Variables: max_allowed_packet, bulk_insert_buffer_size, key_buffer_size

consultas de ejemplo para mostrar y configurar:

show variables like 'max_allowed_packet'; 
SET GLOBAL max_allowed_packet=524288000; 

Referencias :
http://forums.mysql.com/read.php?20,161869

MySQL - how many rows can I insert in one single INSERT statement?