2011-01-19 29 views
16

Quiero volcar un solo registro de la tabla de MySQL nombrado como tabla1 de id = 5.script para volcar solo registro de la tabla en MySQL

¿Cuál es la consulta de MySQL misma?

Creo que podemos usar mysqldump pero lo he usado con los registros completos de la tabla. ¿Pero cómo usarlo con un solo registro?

+0

Necesita el archivo .sql de registro único ¿no? –

+0

@ Shakti Singh: sí, derecha –

+0

Si el campo 'id' es su clave principal, no debería necesitar limitar el resultado (como lo hizo Rana). Tal vez deberías leer algunos tutoriales sobre SQL, como por ejemplo: http://www.itechcollege.com/courses/SQL/02-Select-Data.php – Tony

Respuesta

24

si entra en http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html --donde se encuentra la opción que es el que necesita.

A continuación sigue lo que se afirma en esa referencia:

--where='where_condition', -w 'where_condition' 

Dump sólo las filas seleccionadas por la condición del WHERE dada. Las citas alrededor de la condición son obligatorias si contienen espacios u otros caracteres que son especiales para su intérprete de comandos.

Ejemplos:

--where="user='jimf'" 
-w"userid>1" 
-w"userid<1" 
+1

Probablemente quiera especificar la tabla nombre: mysqldump -uroot -p databasename nombre de tabla -w "id = 'value'"; –

-4

Utilice esta consulta "SELECT * FROM table1 WHERE id = '5' LIMIT 1". Debería funcionar bien

+0

Quiero obtener una fila de una tabla e insertarla en otra tabla de otra base de datos . Entonces esto solo no funcionaría –

+0

Si las tablas son de la misma estructura, simplemente use "INSERT INTO table2 (the_select_query)". Si desea columnas específicas, mencionelas al seleccionar y use 'INSERT INTO table2 (column1, column2) VALUES (the_specific_slect_query)' – Rana

-2

Trate

INSERT INTO table2 (SELECT * FROM table1 WHERE id = 5); 
+1

esto no funcionará, ella quiere agregar registro en otra base de datos –

0

Aunque el siguiente no funcionará para una nueva base de datos/diferente

Pruebe

INSERT INTO tabla2 (SELECT * FROM tabla1 donde id = 5);

Todo lo que hay que hacer si la inserción a través de bases de datos en el mismo servidor es:

INSERT INTO `newdbname`.`table2` (SELECT * FROM `olddbname`.`table1` WHERE id = 5); 

De hecho, si no me equivoco uno puede incluso insertar seleccionar entre bases de datos en distintos servidores de MySQL añadiendo el nombre del servidor delante de cada nombre de la base de datos y la tabla de la siguiente manera:

INSERT INTO `localhost`.`newdbname`.`table2` (SELECT * FROM `accessible-live-server-name`.`olddbname`.`table1` WHERE id = 5); 
0

insert into [dbo].[LocaleStringResource] 
    (LanguageId,ResourceName,ResourceValue) 
select 5 as LanguageId, ResourceName, ResourceValue 
from [dbo].[LocaleStringResource] 
where LanguageId = 2 and id = (
    SELECT MAX(ID) 
    FROM [dbo].[LocaleStringResource] 
) 
Cuestiones relacionadas