Il discorso del campo INT e' infatti una cosa che volevo dire pure io, ma non volemo mettere troppo acqua a bollire, anche perche' se cambiando il tipo di campo metti caso che anche altro cambi e funzioni si vada ad addebitare il problema al tipo di campo .
Per precisare quanto detto giustamente da daniele bisogna dire che i campi TINYINT, SMALLINT, MEDIUMINT, INT e BIGINT sono formati con lunghezza di campo prefissata. Rispettivamente occupano:
Il numerello che si mette tra parentesi e' il numero dei digit da visualizzare, che alla fin della fiera serve solo se si usa UNSIGNED ZEROFILL perche' se si supera la lunghezza impostata MySQL visualizza tutti i numeri inseriti fino alla max capacita' del campo.codice:TINYINT 1 byte SMALLINT 2 byte MEDIUMINT 3 byte INT 4 byte BIGINT 8 byte
Nel caso attuale essendo il campo di tipo BOOL che mysql non ha, il manuale suggerisce espressamente di usare il campo TINYINT(1) con 0/1 in funzione di falso/vero .
Con questo uso (campo BOOL) un errore di configurazione c'e' (al di la del tipo di campo) ed e' il campo "yellow_card" definito come NULL invece che NOT NULL. Se si vuole un funzione tipo BOOLEANA un campo non puo' mai essere NULL. NULL non e' = FALSE.
![]()