Hi Leute
Ich habe eine Tabelle Namens "insertions". In dieser Tabelle sind zwei Fremdschlüssel. Diese sind wiederum die Primärschlüssel in zwei anderen Tabellen.
Eigentlich geht es mir darum, dass in der Tabelle "insertions" in den jeweiligen Fremdschlüssel Spalten nur Werte akzeptiert werden die in den Primärschlüssel Spalten der anderen zwei Tabellen existieren.
Ebenso sollte natürlich beim Löschen eines Datensatzes aus einer der anderen zwei Tabellen eine Fehlermeldung kommen sofern noch ein Datensatz in der Tabelle "insertions" existiert dessen fremdschlüssel den Primärschlüssel Wert aus einer der zwei Tabellen trägt.
Die Tabellen habe ich folgendermassen angelegt(habe einige Felder raus gestrichen zwecks Übersichtlichkeit):
CREATE TABLE members (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
email1 VARCHAR(255) DEFAULT NOT NULL,
PRIMARY KEY(id),
) DEFAULT CHARSET=utf8;
CREATE TABLE methods (
id INT(10) UNSIGNED NOT NULL,
method_name VARCHAR(20) NOT NULL,
PRIMARY KEY(id)
) DEFAULT CHARSET=utf8;
CREATE TABLE insertions (
member_id INT(10) UNSIGNED NOT NULL REFERENCES members(id),
method_id INT(10) UNSIGNED NOT NULL REFERENCES methods(id),
title1 VARCHAR(50) NOT NULL,
description_long TEXT NULL,
PRIMARY KEY(member_id, method_id)
) TYPE=INNODB DEFAULT CHARSET=utf8;
Mein Problem ist, dass wenn ich in phpmyadmin einige Datensätze eintrage und dann einen Wert eingebe der nicht in der Primärschlüsselspalte der anderen Tabelle existiert, dies ohne Fehlermeldung ausgeführt wird. Ebenso kann ich Datensätze aus „Members“ oder „Methods“ löschen auch wenn noch Datensätze in „Insertions“ existieren die Schlüssel von einer der zwei anderen Tabellen tragen.
Die Abhängigkeiten meiner Fremdschlüssel werden irgendwie nicht als solche erkannt und berücksichtigt.
Grüsse
Markus
Ich habe eine Tabelle Namens "insertions". In dieser Tabelle sind zwei Fremdschlüssel. Diese sind wiederum die Primärschlüssel in zwei anderen Tabellen.
Eigentlich geht es mir darum, dass in der Tabelle "insertions" in den jeweiligen Fremdschlüssel Spalten nur Werte akzeptiert werden die in den Primärschlüssel Spalten der anderen zwei Tabellen existieren.
Ebenso sollte natürlich beim Löschen eines Datensatzes aus einer der anderen zwei Tabellen eine Fehlermeldung kommen sofern noch ein Datensatz in der Tabelle "insertions" existiert dessen fremdschlüssel den Primärschlüssel Wert aus einer der zwei Tabellen trägt.
Die Tabellen habe ich folgendermassen angelegt(habe einige Felder raus gestrichen zwecks Übersichtlichkeit):
CREATE TABLE members (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
email1 VARCHAR(255) DEFAULT NOT NULL,
PRIMARY KEY(id),
) DEFAULT CHARSET=utf8;
CREATE TABLE methods (
id INT(10) UNSIGNED NOT NULL,
method_name VARCHAR(20) NOT NULL,
PRIMARY KEY(id)
) DEFAULT CHARSET=utf8;
CREATE TABLE insertions (
member_id INT(10) UNSIGNED NOT NULL REFERENCES members(id),
method_id INT(10) UNSIGNED NOT NULL REFERENCES methods(id),
title1 VARCHAR(50) NOT NULL,
description_long TEXT NULL,
PRIMARY KEY(member_id, method_id)
) TYPE=INNODB DEFAULT CHARSET=utf8;
Mein Problem ist, dass wenn ich in phpmyadmin einige Datensätze eintrage und dann einen Wert eingebe der nicht in der Primärschlüsselspalte der anderen Tabelle existiert, dies ohne Fehlermeldung ausgeführt wird. Ebenso kann ich Datensätze aus „Members“ oder „Methods“ löschen auch wenn noch Datensätze in „Insertions“ existieren die Schlüssel von einer der zwei anderen Tabellen tragen.
Die Abhängigkeiten meiner Fremdschlüssel werden irgendwie nicht als solche erkannt und berücksichtigt.
Grüsse
Markus