Salve voglio gestire due tabelle:
1) officina con nome,via,nr, città, cap, ndip e dirigente;
2) Dipendenti con cf,via,nr,città,cap, officina.
dove il campo dirigente è legato al campo cf di dipendenti, ed il campo officina di dipendenti è legato al campo nome di officina, ho creto
codice:
create table if not exists Dipendente (
CF varchar (16) primary key,
via varchar (25) not null,
nciv varchar (5) default 0,
citta varchar (15) not null,
cap varchar (5) not null,
officina varchar (45)
);
codice:
create table if not exists Officina (
nome varchar (45) primary key,
via varchar (25) not null,
nciv varchar (5) default 0,
citta varchar (15) not null,
cap varchar (5) not null,
ndip numeric (3) default 1,
dirigente varchar (16),
foreign key (dirigente)
references Dipendente (CF)
);
codice:
Alter table Dipendente
add constraint officina foreign key (officina) references Officina(nome);
Ora le tabelle sono vuote, naturalmente se provo ad inserire un dipendete o un'officina mi viene ritornato
Operation failed: There was an error while applying the SQL script to the database.
ERROR 1452: 1452: Cannot add or update a child row: a foreign key constraint fails (`officine`.`officina`, CONSTRAINT `officina_ibfk_1` FOREIGN KEY (`dirigente`) REFERENCES `dipendente` (`CF`))
SQL Statement:
INSERT INTO `officine`.`officina` (`nome`, `via`, `nciv`, `citta`, `cap`, `ndip`, `dirigente`) VALUES ('Officina1', 'p', '2', 'roma', '00010', '1', 'X')
Per risolvere tale problema è quindi necessario introdurre una terza tabella intermedia che leghi officina e dipendente? oppure esiste qualche altra soluzione?