# Löschen einer Zeile



## freez (18. Feb 2008)

Hallo,

ich stehe momentan auf dem Schlauch 

Ich möchte eine Zeile in Tabelle A mit id=4711 löschen:


```
DELETE FROM A WHERE id=4711
```

Allerdings verwende ich die ID als Fremdschlüssel in Tabelle B. Wie muss der Befehl lauten, damit ich die Zeile nur löschen kann, wenn die id nicht in der Tabelle B auftaucht?

Also Löschen soll nur möglich sein, wenn die ID in B nicht mehr vorhanden ist.


----------



## tfa (18. Feb 2008)

Du musst einen FOREIGN KEY in Tabelle B definiert haben. Dann wird auf Referentielle Integrität geprüft, und zwar automatisch.


----------



## freez (18. Feb 2008)

Ja, das ist so definiert. Wie muss der Key definiert werden, damit nicht gelöscht wird?


----------



## maki (18. Feb 2008)

Deine Fragen sind nicht zu beantworten ohne dass du uns den Server verrätst.

Selbst dann wärst du wohl in dem Forum deiner DB besser aufgehoben.


----------



## freez (18. Feb 2008)

Ich verwende MYSQL.

Aber der Tipp war gut ... ich habe nun was finden können:

```
REFERENCES `cells` (`idcells`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE;
```

Das macht genau das, was ich will ... ich hatte mich so auf den DELETE Befehl versteift gehabt


----------

