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

181
Visualizações
Requerir que 1 y solo 1 fila en PostgreSQL se marque como "predeterminada"

Tengo una base de datos Postges. Tengo una tabla de Categorías y quiero que 1 y solo 1 sea considerada como "Predeterminada". Parece que podría tener un campo booleano con una restricción única y simplemente usar nulo en lugar de valores falsos, y eso funcionaría, pero preferiría una configuración en la que si marco una fila como predeterminada, automáticamente establecerá eso en nulo en todos otras filas. También me gustaría asegurarme de que haya un conjunto predeterminado. Podría crear una segunda tabla con 1 fila y 1 columna para rastrear la identificación de la fila predeterminada, que podría hacer cumplir para que tenga un valor y sea una identificación válida, pero parece excesivo tener una tabla solo para eso. hay una manera mas facil?

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

0

Tienes múltiples opciones.

Puede crear un procedimiento almacenado (o 3 procedimientos almacenados) en PostgreSQL para insertar, actualizar y eliminar datos. En el procedimiento almacenado, puede agregar la lógica para asegurarse de que al menos una de las filas esté configurada como predeterminada y el resto de ellas como no predeterminadas.

Puede crear un activador que, después de insertar, actualizar o eliminar, aplique la misma lógica.

Me gusta la idea de tener una tabla separada categories_default . Esto le permite un poco más de flexibilidad y menos exageraciones, en mi opinión, que el método anterior. Si escribe en esa tabla que category_id 123 es el predeterminado, pero mañana su requisito cambia de modo que desea una combinación predeterminada por category_id + color, puede hacerlo con una tabla como esta. También es fácil de actualizar en lugar de las opciones anteriores. En las opciones anteriores, si desea marcar una sola fila como predeterminada, debe escanear todas las filas, encontrar el valor predeterminado existente, cambiarlo a no predeterminado y luego aplicar la fila seleccionada como predeterminada. Entonces, hay muchas lecturas/escrituras.

over 4 years ago · Santiago Trujillo Relatório

0

Su idea con la tabla adicional es buena. Solo asegúrese de tener una restricción de clave externa de esa tabla de una fila a su tabla. Asegúrese de que la tabla no pueda contener más de una fila con un índice:

 CREATE UNIQUE INDEX ON single ((1));
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