una tabla registros otra into insertar informacion ejemplo diferentes datos copiar columnas bases sql postgresql insert append

registros - insertar informacion de una tabla a otra sql



PostgreSQL: insertar desde otra tabla (2)

Puedes usar coalesce:

insert into destination select coalesce(field1,''somedata''),... from source;

Estoy tratando de insertar datos en una tabla desde otra tabla y las tablas tienen solo una columna en común. El problema es que TABLE1 tiene columnas que no aceptarán valores nulos, así que no puedo dejarlas vacías y no puedo obtenerlas de TABLE2.

Tengo TABLE1: id, col_1 (no nulo), col_2 (no nulo), col_3 (no nulo)

y TABLA2: id, col_a, col_b, col_c

entonces, ¿cómo podría insertar id de TABLA2 a TABLA1 y llenar el col_1-3 con cadenas codificadas como "datos1", "datos2", "datos3"?

INSERT INTO TABLE1 (id) SELECT id FROM TABLE2 WHERE col_a = "something";

resultará en:

ERROR: el valor nulo en la columna "col_1" viola la restricción no nula


Simplemente suministre valores literales en SELECT:

INSERT INTO TABLE1 (id, col_1, col_2, col_3) SELECT id, ''data1'', ''data2'', ''data3'' FROM TABLE2 WHERE col_a = ''something'';

Una lista de selección puede contener cualquier expresión de valor :

Pero las expresiones en la lista de selección no tienen que hacer referencia a ninguna columna en la expresión de la tabla de la cláusula FROM; pueden ser expresiones aritméticas constantes, por ejemplo.

Y una cadena literal es sin duda una expresión de valor.