Ciao.
Ho iniziato a lavorare con le chiavi esterne, ho creato due tabelle per un database reale ed ho iniziato a inserire alcuni dati.
Però il problema avviene nella cancellazione dei suddetti dati.
Tabella dati:
CREATE TABLE `dati` (
`dati_id` int(10) UNSIGNED NOT NULL,
`id_utente` int(10) UNSIGNED NOT NULL,
`email` varchar(256) NOT NULL,
`account` varchar(256) NOT NULL,
`password` char(128) NOT NULL,
`salt` char(128) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Dati fondamentali dell''utente';


ALTER TABLE `dati`
ADD PRIMARY KEY (`dati_id`),
ADD KEY `collegamento_utente` (`id_utente`);


ALTER TABLE `dati`
MODIFY `dati_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;


ALTER TABLE `dati`
ADD CONSTRAINT `collegamento_utente` FOREIGN KEY (`id_utente`) REFERENCES `utente` (`utente_id`) ON UPDATE CASCADE;
COMMIT;
Tabella utente:
CREATE TABLE `utente` (
`utente_id` int(10) UNSIGNED NOT NULL,
`nome` varchar(256) NOT NULL,
`cognome` varchar(256) NOT NULL,
`data_nascita` date NOT NULL,
`sesso` char(3) DEFAULT NULL,
`livello` tinyint(4) NOT NULL DEFAULT 0,
`iscrizione` timestamp NOT NULL DEFAULT current_timestamp(),
`note` varchar(4096) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Informazioni sulla persona';

ALTER TABLE `utente`
ADD PRIMARY KEY (`utente_id`);

ALTER TABLE `utente`
MODIFY `utente_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;
COMMIT;
Come avviene la cancellazione?
Ho dato alla tabella dati, una chiave esterna che punta l'Id della tabella utente: ON UPDATE CASCADE e ON DELETE RESTRICT, ma se provo a cancellare i dati mi da errore.
Cosa dovrei fare perché ledue tabelle siano collegate eppure sia possibile la modifica, tenendo presente che per me tutto questo è "una prima volta" in quanto non ho mai utilizzato prima le chiavi esterne.

Il server di Database è MariaDB e le tabelle sono InnoDB.