![]() |
|
|
|||||||
| Datenbankprogrammierung Fragen zur Anbindung und Programmierung von Datenbanken bzw. Datenbankabfragen |
|
|
|
Themen-Optionen | Thema durchsuchen | Ansicht |
| #1 (permalink) | |
|
Benutzer
int
Registriert seit: 04.06.2009
Fachbeiträge: 51
Abgegebene Danke: 4
Erhielt 0 Danke für 0 Beiträge
|
Hallo Leute!
Zunächst: Ich kenne mich noch nicht sonderlich mit MySQL aus. Dank Tutorials bin ich nun so weit Tabellen zu erstellen, Einträge einzufügen, Einträge zu löschen und Abfragen zu erstellen ![]() Nun bin ich gerad an einem Punkt, an dem ich nicht weiter komme: Ich möchte drei Tabellen erstellen und diese in einer Datenbank verknüpfen. In der Datenbank sind mehrere "Projekte" enthalten. Diese Projekte bekommen eine ID. Z.B.: Tabelle "Projekte": Projekt ID >> Projektname 1 Projekt foo 1 2 Projekt foo 2 3 Projekt foo 3 In zwei anderen Tabellen kann man zu diesen Projekte Informationen ablegen. Um eine Information einem Projekt zuzuweisen, ist in dieser Tabelle auch eine Spalte "ID", in der die zugehörige Projekt ID abgelegt wird. Soweit so gut. Nun habe ich ein Problem beim löschen: Wenn ein Projekt in der Tabelle "Projekte" gelöscht wird, soll in den beiden anderen Tabellen auch alles zu diesem Projekt gelöscht werden, da sonst Datenmüll in der DB entsteht. Wie mache ich das? Beispiel: In Tabelle "Projekte" wird Projekt foo 1 gelöscht: Tabelle "Projekte": Projekt ID >> Projektname 2 Projekt foo 2 3 Projekt foo 3 In zwei anderen Tabellen gab es nun mehrere Einträge zu diesem Projekt: Tabelle "Information": Projekt ID >> Information 2 "Das Projekt beginnt in wenigen Tagen" 3 "Meilenstein 5 erreicht" 1 "Meilenstein 9 erreicht." 1 "Das Projekt ist abgeschlossen und kann entfernt werden" Tabelle "Mitarbeiter": Projekt ID >> Mitarbeiter 2 "Max Mustermann, Hein Blöd, Johnny Walker" 3 "Dr. Jim Beam, Klaus Mayer" 1 "Peter Kruse, Stabilo Pen, Heinz Erhard" Die insgesamt drei Einträge mit ID = 1 müssen nun auch verschwinden. Gruß Happy |
|
|
| #2 (permalink) | |
|
Java-Forum Team
Moderator
Registriert seit: 13.11.2005
Fachbeiträge: 31.608
Abgegebene Danke: 0
Erhielt 2.564 Danke für 2.525 Beiträge
|
delete from Information where Projekt = ..
usw ? vor dem Löschen musst du schon wissen wo das Projekt überall drin ist und dann manuell diese Tabellen berichtigen, oder suchst du ein Verfahren, das zu automatisieren? höhere Frameworks wie Hibernate bieten sowas an, Datenbanken selber glaube ich nicht, und trivial selbst zu implementieren ist es auch nicht gerade
__________________
Hansa wird Meister. |
|
|
| #3 (permalink) | |
|
Benutzer
int
Themenstarter
Registriert seit: 04.06.2009
Fachbeiträge: 51
Abgegebene Danke: 4
Erhielt 0 Danke für 0 Beiträge
|
Ah ja danke das hat geholfen. Nein ich brauche kein exotisches Framework!
Wie gesagt, es hapert noch am Grundwissen.Eine weitere Frage habe ich da noch. Ich habe zwei Spalten: Erstelldatum und Änderungsdatum. Wie schaff ich es bei MySQL die Spalten so einzustellen, dass bei Erstelldatum nur einmal das Datum gesetzt wird und bei einem Update nur das Änderungsdatum? Es geht irgendwie mit dem Typ TIMESTAMP soweit bin ich schon. Ich habe es aber noch nicht geschafft, dass Erstelldatum nur einmal zu beschreiben und Änderungsdatum sich mit jedem Update aktuallisieren zu lassen. Das gilt dann natürlich für jede Zeile also für jeden Datensatz. Ich denke Ihr wisst was ich meine ![]() Gruß Happy |
|
|
| #4 (permalink) | |
|
Java-Forum Team
Moderator
Registriert seit: 13.11.2005
Fachbeiträge: 31.608
Abgegebene Danke: 0
Erhielt 2.564 Danke für 2.525 Beiträge
|
die Spalten haben damit weniger zu tun, die haben hauptsächlich ihren Typ,
ein Default-Wert kann nützlich sein um beim Erstellen automatisch das Datum zu setzen, aber für Änderungen musst das Datum ganz normal übergeben, wie jeden anderen Wert auch, hier gibt es vielleicht mehr Möglichkeiten zur Unterstützung, in einem Update-Kommando z.B. den Aufruf der Funktion SysDate()
__________________
Hansa wird Meister. |
|
|
| #5 (permalink) | |
|
Benutzer
int
Themenstarter
Registriert seit: 04.06.2009
Fachbeiträge: 51
Abgegebene Danke: 4
Erhielt 0 Danke für 0 Beiträge
|
So ein mist, dann kann ja jeder reinschreiben was er will.
Es sein denn die Funktion SysDate() funktioniert. Könntest du dazu einen SQL Befehle schreiben für Tabelle "foo" ? Attribute: Inhalt | Erstelldatum | Änderungsdatum Gruß Happy |
|
|
| #6 (permalink) | ||||||||||||||||
|
Java-Forum Team
Site Admin
Registriert seit: 16.02.2009
Fachbeiträge: 193
Abgegebene Danke: 1
Erhielt 47 Danke für 14 Beiträge
|
Vielleicht hilft das Vladimir |
|||||||||||||||
|
|
||||||||||||||||
|
| Themen-Optionen | Thema durchsuchen |
| Ansicht | |
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| brauche Hilfe um Einträge aus Jlist zu löschen | mukkerson | AWT, Swing, JavaFX & SWT | 4 | 18.03.2009 10:58 |
| List- Einträge löschen | Gast | Allgemeine Java-Themen | 3 | 17.06.2008 14:12 |
| Doppelte Einträge einer Liste löschen | Der Programmierer | Java Basics - Anfänger-Themen | 6 | 03.01.2007 13:28 |
| MySQL Zeile löschen und gleich Optimieren | Datenbankprogrammierung | 6 | 08.03.2006 09:06 | |
| MYSQL Datenbankzugriff unter Linux | astryx | Datenbankprogrammierung | 3 | 28.07.2004 22:04 |
| Lesezeichen |
|
|