2010-10-26 3 views
0

J'ai une question sur la modélisation DB, j'ai une table créée comme suit:Comment définir la combinaison de deux colonnes pour être unique?

CREATE TABLE "users_articles" 
    ("id"   INTEGER PRIMARY KEY NOT NULL, 
    "article_id" INTEGER, 
    "user_id" INTEGER) 
  1. Quel énoncé modifiera ce tableau, de sorte que la combinaison de article_id et user_id est unique?
  2. Quelle instruction me dit, si la base de données a déjà été modifiée?

Merci,

Markus

+0

Cela n'a rien à voir avec UML –

Répondre

1
  1. Vous devez créer un index unique:

    CREATE UNIQUE INDEX unique_users_articles ON users_articles (article_id, user_id)

  2. S'il vous plaît expliquer pourquoi vous en avez besoin?
    MISE À JOUR: Utilisez IF NOT EXISTS pour ignorer la création d'index si elle existe déjà:

    CREATE UNIQUE INDEX IF NOT EXISTS unique_users_articles ON users_articles (article_id, user_id)

+0

Merci pour la solution pour ma première question! La seconde: Lorsque je fais une mise à jour sur une application mobile, je dois prouver que la base de données db a déjà obtenu cette modification sur un index unique. – Markus

+1

J'ai mis à jour ma réponse. – cement

+0

Parfait! Merci beaucoup! C'était exactement ce que je cherchais! – Markus

Questions connexes