varios una tabla registros llenar insertar datos como columna agregar mysql insert-into

mysql - una - insertar varios registros en sql



mysql-> insertar en tbl(seleccionar de otra tabla) y algunos valores predeterminados (5)

Con MySQL si está insertando en una tabla que tiene una clave primaria de incremento automático y desea usar una función incorporada de MySQL como NOW() entonces puede hacer algo como esto:

INSERT INTO course_payment SELECT NULL, order_id, payment_gateway, total_amt, charge_amt, refund_amt, NOW() FROM orders ORDER BY order_id DESC LIMIT 10;

Como dice el título, intento insertar en una tabla los valores de otra tabla y algunos valores predeterminados.

INSERT INTO def (catid, title, page, publish) (SELECT catid, title from abc),''page'',''yes'') INSERT INTO def (catid, title, page, publish) VALUES ((SELECT catid, title from abc),''page'',''yes''))

La primera consulta da un error mysql y la segunda da el conteo de columna no coincide.

¿Que necesito hacer?


Si desea copiar un subconjunto de la tabla fuente, puede hacer lo siguiente:

INSERT INTO def (field_1, field_2, field3) SELECT other_field_1, other_field_2, other_field_3 from `abc`

o para copiar TODOS los campos de la tabla de origen a la tabla de destino, puede hacer más simplemente:

INSERT INTO def SELECT * from `abc`


Si desea insertar todas las columnas, entonces

insert into def select * from abc;

aquí el número de columnas en def debería ser igual a abc.

si desea insertar los subconjuntos de columnas, entonces

insert into def (col1,col2, col3 ) select scol1,scol2,scol3 from abc;

si desea insertar algunos valores grabados, entonces

insert into def (col1, col2,col3) select ''hardcoded value'',scol2, scol3 from abc;


Simplemente tienes que hacer:

INSERT INTO def (catid, title, page, publish) SELECT catid, title, ''page'',''yes'' from `abc`


INSERT INTO def (field_1, field_2, field3) VALUES (''$field_1'', (SELECT id_user from user_table where name = ''jhon''), ''$field3'')