Insert nur wenn noch nicht vorhanden in anderer Tabelle

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:
Hi

keine Ahnung, obs geht :)

SQL:
INSERT INTO album(id,name)
SELECT 123,"testalbum"
FROM dual
WHERE
(
    SELECT COUNT(*) FROM song WHERE song_name IN
    (
        "Mozarts 3.14-te Symphonie",
        "Hymne des Römischen Reiches",
    )
)<1
 
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
 
Naja das ist das Problem. Der promärschlüssel ist ja eigentlich die Kombination aus den Sagen wir mal zwei Song ids
 
Zurück