Mysql-Tabelle erstellen mit mehreren Fremdschlüssel on delete set null
Ich versuche eine Datenbank zu erstellen mit mehreren Fremdschlüssel mit Lösch - /update-Einschränkungen, aber ich habe einen Fehlercode 1005 mit folgenden sql-Skripts:
CREATE TABLE Worker (
WorkerID smallint auto_increment,
WorkerType varchar(45) NOT NULL,
WorkerName varchar(45) NOT NULL,
Position varchar(45) NOT NULL,
TaxFileNumber int NOT NULL,
Address varchar(100) ,
Phone varchar(20) ,
SupervisorID smallint ,
PRIMARY KEY (WorkerID),
FOREIGN KEY (SupervisorID) REFERENCES Worker(WorkerID)
ON DELETE SET NULL
ON UPDATE CASCADE
)Engine=InnoDB;
CREATE TABLE Grape (
GrapeID smallint NOT NULL,
GrapeType varchar(45) NOT NULL,
JuiceConversionRatio int,
StorageContainer ENUM('Stainless Steel Tank','Oak Barrel'),
AgingRequirement int,
PRIMARY KEY (GrapeID)
)Engine=InnoDB;
CREATE TABLE Vineyard (
VineyardID smallint auto_increment,
VineyardName VARCHAR(45) NOT NULL,
FarmerID smallint NOT NULL,
GrapeID smallint NOT NULL,
ComeFrom varchar(45) NOT NULL,
HarvestedAmount int,
RipenessPercent int,
PRIMARY KEY (VineyardID),
FOREIGN KEY (FarmerID) REFERENCES Worker(WorkerID)
ON DELETE SET NULL
ON UPDATE CASCADE,
FOREIGN KEY (GrapeID) REFERENCES Grape(GrapeID)
ON DELETE SET NULL
ON UPDATE CASCADE
)Engine=InnoDB;
Den Fehler code sagt, dass Fehler bei der Erstellung des Weinberg-Tabelle, ich will nur wissen, das richtige format für die Erstellung mehrerer Fremdschlüssel mit Lösch - /update-Kontrolle.
InformationsquelleAutor Tim Raynor | 2013-04-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihren foreign key-Regel ist
ON DELETE SET NULL
aber Ihre Spalte definition istNOT NULL
.Entweder ändern Sie Ihre definition für die Spalte und entfernen Sie die
NOT NULL
Teil oder overthink Ihre foreign key-Regel. Das funktioniert:SQLFiddle demo
InformationsquelleAutor juergen d
Versuchen Sie mit create table(
innoDB enginer
) ohne foreign key und verwenden Sie denupdate table with constraint
syntax, zum Beispiel:Trick: wird nicht empfohlen, verwenden Sie Großbuchstaben(oder camel-case) in den Namen der Tabellen, die das Verhalten unterscheidet sich von dem Betriebssystem verwendet wird:
InformationsquelleAutor fitorec
Besuchen :
https://developer.android.com/training/basics/data-storage/databases.html#DefineContract
InformationsquelleAutor Akash
Besuchen :
InformationsquelleAutor Nimesh Vagadiya