1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Insert nur wenn noch nicht vorhanden in anderer Tabelle

Dieses Thema im Forum "Relationale Datenbanksysteme" wurde erstellt von ThiKool, 5. November 2016.

  1. ThiKool

    ThiKool Erfahrenes Mitglied

    Hallo zusammen.

    Ich habe folgendes Problem:

    Ich habe zwei Tabellen
    1. Album mit
    Id, Name
    2. Songs
    album_id, song_name

    In meinem skriptbespiel ist es so das zuerst das Album angelegt wird und dann mit weiteren inserts die Songs. Die album_id ist die Last insert id des Album inserts.

    Ich möchte jetzt der Album Tabelle irgendwie klar machen, dass das Album nicht nochmal angelegt werden darf wenn es schon Songs in der Song Tabelle gibt die zB den Namen x und y tragen. Wie ist sowas zu lösen?

    Nochmal etwas vereinfacht dargestellt: wenn in der songtabelle Song x vorhanden ist, darf kein neues Album angelegt werden.

    Danke euch
     
    Zuletzt bearbeitet: 5. November 2016
  2. sheel

    sheel I love Asm Administrator

    Hi

    keine Ahnung, obs geht :)

    Code (SQL):
    1. INSERT INTO album(id,name)
    2. SELECT 123,"testalbum"
    3. FROM dual
    4. WHERE
    5. (
    6.     SELECT COUNT(*) FROM song WHERE song_name IN
    7.     (
    8.         "Mozarts 3.14-te Symphonie",
    9.         "Hymne des Römischen Reiches",
    10.     )
    11. )<1
     
  3. Spyke

    Spyke Capoeirista Premium-User

    Ich würde noch einen eindeutigen Index setzen.
    Dann sollte es sogar/wenigstens krachen falls dennoch ein insert erfolgt der die titel nicht prüft und ein gleichnamiger schon enthalten ist
     
  4. ThiKool

    ThiKool Erfahrenes Mitglied

    Naja das ist das Problem. Der promärschlüssel ist ja eigentlich die Kombination aus den Sagen wir mal zwei Song ids
     
  5. sheel

    sheel I love Asm Administrator

    (Ist das Thema mit dem Code erledigt oder nicht?)
     
Die Seite wird geladen...