Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

176
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!