php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.09.2011, 19:58  
Benutzer
 
Registriert seit: 23.10.2009
Beiträge: 93
PHP-Kenntnisse:
Anfänger
rejoice befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] MySQL InnoDB: "ON DELETE CASCADE" funktioniert nicht

Hallo

ich habe ein Problem mit meiner MySQL InnoDB Datenbank.

Wenn ich in der Haupttabelle eine Zeile lösche wird nicht automatisch die Daten in der Fremdschlüsseltabelle gelöscht, obwohl dieses eingestellt ist. Weiß jemand rat?

folgendes ist gegeben:

PHP-Code:
--
-- 
Tabellenstruktur für Tabelle `tblauftrag`
--

CREATE TABLE IF NOT EXISTS `tblauftrag` (
  `
auftragsnummerint(7unsigned NOT NULL AUTO_INCREMENT COMMENT 'Fremdschlüssel ist tblstationen->auftragsnummer',
  `
kundennummerint(5NOT NULL,
  `
servicechar(30NOT NULL,
  `
statuschar(30NOT NULL,
  `
startdatumdate DEFAULT NULL,
  `
startzeittime DEFAULT NULL,
  `
enddatumdate DEFAULT NULL,
  `
endzeittime DEFAULT NULL,
  `
zahlartvarchar(16) DEFAULT 'Barzahlung',
  `
kmdecimal(6,1unsigned DEFAULT NULL,
  `
kmpreisdecimal(6,2unsigned DEFAULT NULL,
  `
nettopreisdecimal(6,2unsigned DEFAULT NULL,
  `
mwsttinyint(3unsigned DEFAULT '19',
  `
bruttopreisdecimal(6,2) DEFAULT NULL,
  `
geldeingangdate DEFAULT NULL,
  `
stornodatumdate DEFAULT NULL,
  `
infotext,
  `
erstelldatumdate DEFAULT NULL,
  `
erstellzeittime DEFAULT NULL,
  
PRIMARY KEY (`auftragsnummer`),
  
KEY `kundennummer` (`kundennummer`)
ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='Beinhaltet die Daten der Aufträge' AUTO_INCREMENT=14802 
PHP-Code:
--
-- 
Daten für Tabelle `tblauftrag`
--

INSERT INTO `tblauftrag` (`auftragsnummer`, `kundennummer`, `service`, `status`, `startdatum`, `startzeit`, `enddatum`, `endzeit`, `zahlart`, `km`, `kmpreis`, `nettopreis`, `mwst`, `bruttopreis`, `geldeingang`, `stornodatum`, `info`, `erstelldatum`, `erstellzeit`)

VALUES

(148011300'Bad Bevensen Express''Angebot''2011-09-29'NULLNULLNULL'Barzahlung'111.00.4347.731956.80NULLNULLNULL'2011-09-15''19:27:08'); 
PHP-Code:
--
-- 
Tabellenstruktur für Tabelle `tblstationen`
--

CREATE TABLE IF NOT EXISTS `tblstationen` (
  `
stationsnummerint(1unsigned NOT NULL AUTO_INCREMENT,
  `
auftragsnummerint(7unsigned NOT NULL,
  `
stationsartvarchar(12NOT NULL,
  `
namevarchar(50) DEFAULT NULL,
  `
straßevarchar(50) DEFAULT NULL,
  `
hausnummervarchar(5) DEFAULT NULL,
  `
plzchar(5) DEFAULT NULL,
  `
ortvarchar(60) DEFAULT NULL,
  `
flugnummervarchar(10) DEFAULT NULL,
  `
personensmallint(6) DEFAULT NULL,
  `
kindersitzesmallint(1) DEFAULT NULL,
  `
datumdate DEFAULT NULL,
  `
zeittime DEFAULT NULL,
  `
kommentartext,
  `
telefonvarchar(15) DEFAULT NULL,
  `
fahrersmallint(1unsigned DEFAULT NULL,
  
PRIMARY KEY (`stationsnummer`),
  
KEY `auftragsnummer` (`auftragsnummer`)
ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1003 
PHP-Code:
--
-- 
Daten für Tabelle `tblstationen`
--

INSERT INTO `tblstationen` (`stationsnummer`, `auftragsnummer`, `stationsart`, `name`, `straße`, `hausnummer`, `plz`, `ort`, `flugnummer`, `personen`, `kindersitze`, `datum`, `zeit`, `kommentar`, `telefon`, `fahrer`)

VALUES

(100114801'Abholstation''Mirko Böhm''Gießerstraße''27''9130''Chemnitz'NULL1NULL'2011-09-29''11:09:00''Kommentar Abholstation''01775181708'3),
(
100214801'Zielstation''Hotel Hummel''Große Straße''39a''11157''Berlin'NULLNULLNULL'2011-09-29''13:17:00''Kommentar Zielstation''0307589652'NULL); 
rejoice ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.09.2011, 20:03  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.233
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Und wo genau ist der Fremdschlüssel definiert? MySQL macht das garantiert nicht, weil du das in den Kommentar schreibst. MySQL juckt der Spaltenkommentar nicht weiter.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Alt 19.09.2011, 20:11  
Benutzer
 
Registriert seit: 23.10.2009
Beiträge: 93
PHP-Kenntnisse:
Anfänger
rejoice befindet sich auf einem aufstrebenden Ast
Standard

oh sorry - das hab ich natürlich gemacht nur vergessen hier mit anzugeben:

PHP-Code:
--
-- 
Constraints der Tabelle `tblauftrag`
--
ALTER TABLE `tblauftrag`
  
ADD CONSTRAINT `tblauftrag_ibfk_1FOREIGN KEY (`auftragsnummer`) REFERENCES `tblstationen` (`auftragsnummer`) ON DELETE CASCADE ON UPDATE CASCADE
rejoice ist offline   Mit Zitat antworten
Alt 19.09.2011, 20:35  
Benutzer
 
Registriert seit: 23.10.2009
Beiträge: 93
PHP-Kenntnisse:
Anfänger
rejoice befindet sich auf einem aufstrebenden Ast
Standard

Anmerkung: MySql-Version ist die 5.1.43

liegt es evtl daran?
rejoice ist offline   Mit Zitat antworten
Alt 19.09.2011, 22:25  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.233
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

und auf welcher tabelle hast du den delete ausgeführt?
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Alt 19.09.2011, 22:38  
Benutzer
 
Registriert seit: 23.10.2009
Beiträge: 93
PHP-Kenntnisse:
Anfänger
rejoice befindet sich auf einem aufstrebenden Ast
Standard

ich hab in der tabelle "tblauftrag" dein Eintrag mit der Auftragsnummer 14801 gelöscht

in der tabelle "tblstationen" gibt es zwei einträge mit der Auftragsnummer 14801

diese wurden nicht mit gelöscht
rejoice ist offline   Mit Zitat antworten
Alt 20.09.2011, 07:55  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.233
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Liegt evtl. daran,dass du den Foreign key falsch herum definiert hast. Siehe Beispiel unter http://dev.mysql.com/doc/refman/5.5/...nstraints.html
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Alt 20.09.2011, 08:47  
Erfahrener Benutzer
 
Registriert seit: 21.12.2009
Beiträge: 415
PHP-Kenntnisse:
Fortgeschritten
G.Schuster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das liegt nicht nur eventuell daran.
__________________
actra.development - Schwabstr. 2 - 70825 Münchingen
www.actra.de/velopment/ - eMail: php.de@actra.de
Zend Certified Engineer for PHP5
G.Schuster ist offline   Mit Zitat antworten
Alt 20.09.2011, 08:54  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

jenau - der Fremdschlüssel wird nicht in der "Quelltabelle" definiert, sondern in der Tabelle, wo er drin steht - der Fremdschlüssel bei dir muss in der tblstationen deklariert werden, und er bezieht sich dann auf das Feld in der tblauftrag
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 20.09.2011, 20:24  
Benutzer
 
Registriert seit: 23.10.2009
Beiträge: 93
PHP-Kenntnisse:
Anfänger
rejoice befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von mepeisen Beitrag anzeigen
Liegt evtl. daran,dass du den Foreign key falsch herum definiert hast. Siehe Beispiel unter http://dev.mysql.com/doc/refman/5.5/...nstraints.html

danke @mepeisen - das war das problem.
ich habe nun in der tblstationen den fremdschlüssel eingetragen und alles klappt so wie es soll

eigentlich ist es auch logisch... naja wieder was gelernt danke sehr
rejoice ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bild_upload mit mysql funktioniert nicht richtig? Zapper PHP Tipps 2010 22 08.10.2010 23:51
(mysql) select funktioniert nicht ? Rea PHP Tipps 2010 3 05.08.2010 00:21
[Erledigt] mysql InnoDB Insert Problem mit Fremdschlüssel itachy Datenbanken 3 25.02.2010 08:37
MySQL DELETE From funktioniert nicht - Warum ? Repli Datenbanken 9 14.07.2008 09:27
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
[Erledigt] Xampp - Mysql Shutdown funktioniert nicht Server, Hosting und Workstations 7 02.04.2005 16:59
Datumssortierung funktioniert bei MySQL nicht richtig PHP Tipps 2005 2 01.04.2005 14:00
Warum Funktioniert diese Funktion nich (mySQL) PHP Tipps 2005 10 04.03.2005 16:36
MySQL Error aber es funktioniert trotzdem PHP Tipps 2005 3 27.02.2005 04:16
Abfrage funktioniert unter MySQL aber nicht unter MS SQL Schiedsrichter Datenbanken 2 27.01.2005 15:43
MySQL UPDATE Befehl funktioniert nicht PHP Tipps 2005 6 24.01.2005 15:03
mysql update query mit mehreren Tabellen funktioniert nicht PHP-Fortgeschrittene 5 08.01.2005 16:29
Problem: MySQL Query funktioniert nicht. Wieso? PHP Tipps 2004-2 3 24.12.2004 13:58
Pfadange in mysql speichern - funktioniert nicht Calli PHP Tipps 2004-2 8 30.11.2004 15:41
[Erledigt] MySQL findet Datenbank nicht Datenbanken 10 21.10.2004 09:14

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
innodb delete, mysql on delete cascade funktioniert nicht, mysql cascade, mysql ondelete cascade geht nicht, mysql innodb cascade, inno db on delete, mysql on delete, php mysql innodb on delete, mysql on delete ccascade, delete innodb, php innodb delete, innodb decimal, on delete cascade mysql geht nicht, mysql delete innodb, mssql ondelete, php update innodb funktioniert nicht, innodb delete on, mysql on delete standard aktion, on delete mysql, mysql cascade on delete

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:29 Uhr.




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