• User Newbie

    Problema CHECK nella Create Table

    Buondì!!
    Ho un grosso problema nell'inserire il vincolo di check nella creazione della tabella. Ponendo di voler costruire una semplice tabella a 3 campi, il primo costituito da una stringa e i rimanenti costituiti da due date che delimitano un intervallo, devo fare in modo che la seconda data sia successiva alla prima. Ql è la corretta sintassi da usare? La query che inserisco io non mi dà alcun errore ma posso inserire qualsiasi dato perchè il db non effettua alcun controllo.. ;-(

    CREATE TABLE intervallo
    (nome VARCHAR(10) NOT NULL,
    data1 DATE,
    data2 DATE,
    PRIMARY KEY(nome),
    CONSTRAINT ctr CHECK(data1 < data2))
    ENGINE = InnoDB;

    Elisa


  • User Attivo

    io ho usato una serie di comandi php per fare una verifica simile... credo che con qualche cambiamento possa funzionare anche per il tuo caso!

    $primaData = strtotime($primaData);
    $secondaData = strtotime($secondaData);
    if ($primaData<$secondaData){
    //inserisci
    }
    else{
    //dai errore
    }


  • User Newbie

    Grazie mille, ma volevo sfruttare quella potenzialità per delegare + lavoro al db e non pensarci + ogni volta che ci accedo tramite php.. Sui manuali è prevista l'opzione Check e non capisco perchè non funzioni.. 😞