php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen
Alt 08.07.2008, 19:16  
Erfahrener Benutzer
 
Registriert seit: 28.06.2008
Beiträge: 259
maeck befindet sich auf einem aufstrebenden Ast
Standard löschen in mehreren Tabellen

Hallo,

mit JOINS kann ich ja mehrere Tabellen miteinander verknüpfen.
Ist es möglich in miteinander verknüpften TAbellen zu löschen?

Z.B. Ich habe eine Tabelle in der Tickets stehen und in einer anderen Tabelle Artikel.
Nun möchte ich, wenn ich ein Ticket lösche, dass auch alle Artikel, die dem Ticket gehören gelöscht werden.

Geht so was?
maeck
maeck ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.07.2008, 07:53  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.934
Zergling-new wird schon bald berühmt werdenZergling-new wird schon bald berühmt werden
Standard

Schau dir mal die MySQL-Engine InnoDB an, darueber kannst du Fremdschluesselbeziehungen herstellen, also deine Beziehung ueber die Datenbank absichern. Somit verlagerst du diese Ueberpruefung aus deiner Applikation in die Datenbank.

http://dev.mysql.com/doc/refman/5.0/...nstraints.html

Wenn du MySQL also mitteils, wie diese Beziehungen aussehen, kannst du mit ON DELETE/UPDATE CASCADE kaskadierend loeschen, genau wie du es haben moechtest. Und genau dafuer ist es auch vorgesehen. ON DELETE/UPDATE SET NULL ist auch moeglich, weiterhin RESTRICT und NO ACTION, mehr dazu im MySQL Link.
Zergling-new ist offline   Mit Zitat antworten
Alt 10.07.2008, 19:53  
Erfahrener Benutzer
 
Registriert seit: 28.06.2008
Beiträge: 259
maeck befindet sich auf einem aufstrebenden Ast
Standard

leider ist die Engine schon vorgegeben und es ist nicht InnoDB
Dann muss ich wohl verschachtelte DELETEs nehmen.

Trotzdem danke.
maeck ist offline   Mit Zitat antworten
Alt 10.07.2008, 20:43  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.934
Zergling-new wird schon bald berühmt werdenZergling-new wird schon bald berühmt werden
Standard

Dann wechsel die Engine eben ..
Zergling-new ist offline   Mit Zitat antworten
Alt 10.07.2008, 23:14  
Erfahrener Benutzer
 
Registriert seit: 28.06.2008
Beiträge: 259
maeck befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Zergling
Dann wechsel die Engine eben ..
das geht, einfach so?
Habe ich mich damit noch nie auseinander gesetzt, aber was passiert wenn ich wechsle?
Geht dabei irgendwas verloren oder muss ich auf etwas achten?

Was sind eigentlich die Vorteile von MyISAM zu InnoDB, warum ist MyISAM standard?

Danke, maeck
maeck ist offline   Mit Zitat antworten
Alt 10.07.2008, 23:19  
da schreibt der ElePHPant
 
Registriert seit: 18.06.2008
Beiträge: 10.043
PHP-Kenntnisse:
Fortgeschritten
Flor1an hat eine strahlende ZukunftFlor1an hat eine strahlende ZukunftFlor1an hat eine strahlende ZukunftFlor1an hat eine strahlende ZukunftFlor1an hat eine strahlende ZukunftFlor1an hat eine strahlende ZukunftFlor1an hat eine strahlende ZukunftFlor1an hat eine strahlende ZukunftFlor1an hat eine strahlende ZukunftFlor1an hat eine strahlende ZukunftFlor1an hat eine strahlende Zukunft
Standard

InnoDB ist transaktionssicher zum Beispiel. Wenn du keine Highend Applikation hast (davon gehe ich nicht aus sonst wüsstest du wohl bescheid ) ist es egal ob du MyISAM oder InnoDB verwendest. Da wirst wohl kaum einen Unterschied merken.

Mach ein Backup, änder die Engine und schau ob alles funktioniert. Normal dürfte es keine Probleme geben wenn die Engine geändert wird.
Flor1an ist offline   Mit Zitat antworten
Antwort


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[MATCH...AGAINST] mit mehreren Tabellen und Datensätzen? becks123 Datenbanken 6 20.06.2007 12:17
Zeilen aus mehreren Tabellen löschn mit Bezug auf eine Table Riks Datenbanken 3 25.02.2007 20:17
select mit inhalten aus mehreren Tabellen wurtzel Datenbanken 6 02.12.2006 17:37
Bestimmte ID in mehreren Tabellen suchen Dummy2006 PHP Tipps 2006 10 01.06.2006 21:54
Aus mehreren Tabellen (Foren) den Top User ermitteln wizzardxx PHP Tipps 2006 9 15.02.2006 10:39
Daten aus mehreren Tabellen holen Datenbanken 0 19.09.2005 17:14
werte aus mehreren tabellen auslesen Datenbanken 5 18.09.2005 13:45
MySQL Abfrage aus mehreren Tabellen Datenbanken 1 12.04.2005 17:53
Abfrage aus mehreren Tabellen msdose Datenbanken 6 17.03.2005 10:25
[Erledigt] mysql update query mit mehreren Tabellen funktioniert nicht PHP-Fortgeschrittene 5 08.01.2005 16:29
[Erledigt] Suche mit mehreren unterschiedlichen Tabellen Datenbanken 9 31.12.2004 17:39
[Erledigt] Löschen in mehreren Tabellen gleichzeitig Datenbanken 2 05.12.2004 00:43
[Erledigt] Selectanfrage an eine Datenbank,aber aus mehreren Tabellen Datenbanken 2 26.10.2004 07:23
SQL Abfrage aus mehreren Tabellen PHP Tipps 2004 7 26.07.2004 16:56
letztes Datum aus mehreren Tabellen wizzardxx PHP Tipps 2004 6 05.07.2004 23:18

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql kaskadierend löschen, mysql verknüpfte daten löschen, mysql verknüpfte datensätze löschen, delete sql mehrere tabellen, mysql delete über mehrere tabellen, sql befehl datensatz löschenin mehreren tabellen, sql delete mehrere tabellen, innodb datensatz löschen, http://www.php.de/datenbanken/46140-loeschen-mehreren-tabellen.html, verknüpfte tabellen entfernen innodb, sql kaskadierend löschen, kaskadierend löschen, mehrere tabellen aus datenbak löschen, sql tabelle löschen *, mysql mehrere tabellen löschen, php daten in mehreren datenbanken löschen, sql löschen aus mehreren tabellen, on delete innodb verknüpfte tabellen löschen, mehrere sql tabellen löschen, sql in allen tabellen löschen

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:39 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.