Ich versuche, ein "ON DELETE SET NULL" auf meinem SQL-Skript zu schreiben, aber es funktioniert nicht ...
Hier sind meine Tabelle:Fehler mit "ON DELETE SET NULL" mysql MAMP
Serie Tabelle ist für die Beschreibung der Serie und Typ-Tabelle ist für die Art dieser Serie (Drama, Komödie, etc.) der sQL-Skript ist:
#------------------------------------------------------------
# Script MySQL.
#------------------------------------------------------------
#------------------------------------------------------------
# Table: serie
#------------------------------------------------------------
CREATE TABLE serie(
id_serie Int NOT NULL ,
original_name_serie Varchar (256) ,
french_name_serie Varchar (256) ,
creation_date_serie Int ,
end_date_serie Int ,
status_serie Varchar (256) ,
duration_serie Int ,
synopsis_serie Varchar (2024) ,
countries_serie Varchar (128) ,
PRIMARY KEY (id_serie)
)ENGINE=InnoDB;
#------------------------------------------------------------
# Table: type
#------------------------------------------------------------
CREATE TABLE type(
id_type Int NOT NULL ,
name_type Varchar (128) ,
PRIMARY KEY (id_type)
)ENGINE=InnoDB;
#------------------------------------------------------------
# Table: have
#------------------------------------------------------------
CREATE TABLE have(
id_type Int ,
id_serie Int NOT NULL ,
PRIMARY KEY (id_type ,id_serie)
)ENGINE=InnoDB;
ALTER TABLE have ADD CONSTRAINT FK_have_id_type FOREIGN KEY (id_type) REFERENCES type(id_type) ON DELETE SET NULL;
ALTER TABLE have ADD CONSTRAINT FK_have_id_serie FOREIGN KEY (id_serie) REFERENCES serie(id_serie) ON DELETE CASCADE;
Mit diesem Skript I will wenn ich einen 'typ' in der löschen type table, der Wert von 'type' in 'have' table wird an 'null' übergeben, deshalb füge ich "ON DELETE SET NULL" hinzu. Aber es funktioniert nicht, ich habe: "# 1005 - Kann Tabelle nicht erstellen 'zz. # Sql-16527_272' (errno: 150) (Details ...)"
Ich denke, es ist vielleicht habe ich versucht zu setzen Ein Null-Wert in einem Primärschlüssel in der 'have' Tabelle und es ist nicht möglich ... Aber wer kann ich das tun?
Ich habe das versucht, aber es funktioniert nicht, weil 'id_type' in 'haben' war der Primärschlüssel und Sie können keinen Nullwert in einen Primärschlüssel setzen. Danke trotzdem, ich habe den Primärschlüssel mit einer einzigartigen Einschränkung geändert und es funktioniert :) – piupiu34