Ciao a tutti,
volevo eseguire un controllo sui dati che vengono inseriti nella tabella contratti. Ad esempio volevo controllare che non venisse creato un contratto che iniziasse con una data precedente alla nascita di un gruppo musicale:

Codice PHP:
CREATE TABLE  `contratti` (
  `
gidint(11NOT NULL,
  `
eidint(11NOT NULL,
  `
daldate NOT NULL,
  `
aldate NOT NULL,
  
PRIMARY KEY  (`gid`,`eid`),
  
FOREIGN KEY (`eid`) REFERENCES `etichette` (`eid`) ON DELETE CASCADE ON UPDATE NO ACTION,
  
FOREIGN KEY (`gid`) REFERENCES `gruppi` (`gid`) ON DELETE CASCADE ON UPDATE NO ACTION,
  
CHECK( `dal` > (SELECT g.`nascitaFROM `gruppig WHERE g.`gid` = `gid`))

ENGINE=InnoDB 

Per chiarezza metto anche la tabella Gruppi

Codice PHP:
CREATE TABLE  `gruppi` (
  `
gidint(11NOT NULL AUTO_INCREMENT,
  `
nomevarchar(30NOT NULL,
  `
nascitadate default NULL,
  
PRIMARY KEY  (`gid`)
ENGINE=InnoDB 
La sintassi è corretta, ossia quella del mio libro di testo, ma non capisco perchè non funzioni e mi faccia inserire ugualmente contratti con date antecedenti alla data `nascita`.
Forse c'è un errore nel confronto tra date con un semplice > o <?
Ho cercato nel forum ed ho trovato solo confronti tra date in codice php mentre il confronto lo vorrei fare sottoforma di check a monte.

Grazie a tutti in anticipo.