Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

328
Visualizações
¿Cómo puedo llenar filas de tablas vacías que hacen referencia a la ID de columna de otra tabla?

Quiero completar las configuraciones de notificación vacías para cada usuario que ya existe. Los ID (PK) son generados automáticamente por Hibernate en cada tabla. Aquí está la tabla de usuarios:

 CREATE TABLE lottery_user ( id int8 not null, email varchar(255) not null, password varchar(255) not null, notification_settings_id int8, role varchar (50) default 'USER', registry_date TIMESTAMP default now(), primary key (id) ADD CONSTRAINT FK_USER_TO_NOTIFICATION_SETTINGS FOREIGN KEY (notification_settings_id) REFERENCES notification_settings );

Y aquí está la tabla de configuración de notificaciones que debo completar para los usuarios que no la tienen completa.

 CREATE TABLE notification_settings ( id int8 not NULL , test1_events bool DEFAULT TRUE , test2_events bool DEFAULT TRUE , test3_events bool DEFAULT TRUE , test4_events bool DEFAULT TRUE , PRIMARY KEY (id) );

Básicamente, necesito usar "INSERT INTO notification_settings (test1_events, test2_events, test3_events, test4_events) VALUES (True, True, True, True)" algo similar a eso. Y, por supuesto, la condición debería ser algo como esto "donde estas filas están vacías para los usuarios". Parece que no puedo obtener la sintaxis correcta.

GRAN NOTA: el código SQL es para fines de presentación, por lo que puede tener una idea de qué tipo de tablas tengo. Solo necesito obtener el script INSERT correcto. Las tablas funcionan bien, solo es necesario generar valores de configuración de notificación para los usuarios que ya existen.

Otra nota: usar Flyway, por lo que no se trata solo de Hibernate. Si eso tiene que ver con algo.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

¿Estás buscando solo:

 INSERT INTO notification_settings (id) SELECT id FROM user WHERE id NOT IN (SELECT id FROM notifiation_settings)

Es posible que desee insertar en un campo de identidad:

 SET IDENTITY_INSERT my_table ON
over 4 years ago · Santiago Trujillo Relatório

0

Dado que su restricción de clave externa va de la configuración_notificación al usuario, la condición "donde estas filas están vacías para el usuario X" no se aplica a su esquema. Por otro lado, "Quiero completar las configuraciones de notificación vacías para cada usuario que ya existe" se puede hacer usando una construcción insert...select :

 set @rank=0 select @maxid = max(id) from notification_settings insert into notification_settings (id) select @maxid + @rank:=@rank+1 as rank from user where notification_settings_id is null

Lo que es interesante es cómo vuelve a colocar esas ID recién generadas en la tabla de usuarios. Tarea para la próxima vez :)

over 4 years ago · Santiago Trujillo Relatório

0

INSERTAR EN la configuración_notificación (id)

SELECCIONE u.id DESDE el usuario u DONDE
no existe (SELECCIONE * DESDE notifiation_settings ns donde ns.id=i.id)

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda