Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    38

    MySQL non rispetta il vincolo di check

    salve,
    utilizzando MySQL mi sono accorto che non viene rispettato il vincolo di check.
    Nel mio esempio, posso inserire un voto anche minore di 18 (nonostante il vincolo).
    Come posso risolvere?

    create table db.studente (
    matricola int not null,
    primary key (matricola)
    );

    create table db.esame (
    idEsame int not null,
    voto int not null CHECK (voto>=18 AND voto<=30),
    matricola int not null,
    primary key (idEsame),
    foreign key (matricola) references db.studente(matricola) on delete cascade
    );

    (engine INNODB)

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    117
    Ciao earl,
    hai valutato la possibilità di utilizzare un campo ENUM?

  3. #3
    il manuale recita:

    The CHECK clause is parsed but ignored by all storage engines.

    In pratica esiste solo per compatibilita' SQL ma non fa una pippa buffa.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    38
    Quote Originariamente inviata da piero.mac Visualizza il messaggio
    il manuale recita:

    The CHECK clause is parsed but ignored by all storage engines.

    In pratica esiste solo per compatibilita' SQL ma non fa una pippa buffa.
    Già, e sembra non essere l'unico bug.
    Alla fine ho deciso di usare postgreSQL

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.