0

問題があります。3つの外部キーを持つテーブルを作成したい

PRAGMA foreign_keys = ON;
CREATE TABLE "Dipendente" ("idDipendente" INTEGER PRIMARY KEY AUTOINCREMENT, 
                                                 "nome" VARCHAR NOT NULL, 
                                                 "cognome" VARCHAR NOT NULL , 
                                                 "email" VARCHAR NOT NULL  UNIQUE , 
                                                 "password" VARCHAR NOT NULL , 
                                                 "tipo" VARCHAR NOT NULL );


CREATE TABLE "Prodotto" ("idProdotto" INTEGER PRIMARY KEY AUTOINCREMENT,
                                             "nome" VARCHAR NOT NULL UNIQUE,
                                             "qta" INTEGER NOT NULL,
                                             "prezzoUnita" FLOAT NOT NULL );

CREATE TABLE "Fondo" ("idFondo" INTEGER PRIMARY KEY AUTOINCREMENT,
                                        "nome" VARCHAR NOT NULL UNIQUE,
                                        "fondoDisponibile" FLOAT NOT NULL );

CREATE  TABLE IF NOT EXISTS "Acquisto" (
    `idAcquisto`  INTEGER PRIMARY KEY NOT NULL ,
    `idDipendente` INTEGER NOT NULL DEFAULT -1,
    `idProdotto` INTEGER NOT NULL DEFAULT -1,
    `idFondo` INTEGER NOT NULL DEFAULT -1,
    `qta` INTEGER NOT NULL ,
    `dataAcquisto` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,

   CONSTRAINT `fk_acquisto_dipendente`
    FOREIGN KEY (`idDipendente` )
      REFERENCES `Dipendente` (`idDipendente` )
         ON DELETE SET DEFAULT
         ON UPDATE NO ACTION,
   CONSTRAINT `fk_acquisto_prodotto`
     FOREIGN KEY (`idProdotto` )
       REFERENCES `Prodotto` (`idProdotto` )
         ON DELETE SET DEFAULT
         ON UPDATE NO ACTION,

  CONSTRAINT `fk_acquisto_fondo`
FOREIGN KEY (`idFondo` )
  REFERENCES `Fondo` (`idFondo` )
    ON DELETE SET DEFAULT
    ON UPDATE NO ACTION);

CREATE INDEX 'fk_acquisto_dipendente' ON 'Acquisto' ('idDipendente' ASC);
CREATE INDEX 'fk_acquisto_prodotto' ON 'Acquisto' ('idProdotto' ASC);
CREATE INDEX 'fk_acquisto_fondo' ON 'Acquisto' ('idFondo' ASC);

そこで、デフォルトで Acquisto (idDipendente, idProdotto, idFondo) を -1 の値に設定したいのですが、テーブル Acquisto で idDipendente = 1 の Dipendente の行を削除すると、フィールド idDipendente はまだ 1 に設定されています。何が問題なのかわからない。

4

1 に答える 1