Errore: Incorrect integer value: 'NULL' for column 'id' at row 1 - fix

Passando dallo sviluppo in locale alla messa online del mio database, ricevo questo messaggio di errore:

Incorrect integer value: 'NULL' for column 'id' at row 1

essendo la colonna id, un identificativo univoco (chiave primaria) con valore auto incrementale, com'è possibile?

Risolta 4
MySql 08-03-2020 2 Risposte 4523 Visite +2
Fabrizio Colessi

Fabrizio Colessi

Autore di questa domanda

Risposte ( 2 approvate )

  1. Michele Ladonia
    0
    09-09-2019 18:59:04
    Rispondi

    Prova a scrivere la INSERT in questo modo:

    INSERT INTO my_table (id, title) values (null, "Mio titolo");

    se id è settato come chiave primaria con attributo AUTO_INCREMENT, il valore null verrà in automatico sostituito con un intero incrementale alla chiave del record precedente.

  2. Giacomo Barrile
    0
    09-09-2019 18:49:08
    Rispondi

    Penso che il tuo MySQL Server sia in esecuzione in strict mode.

    L'errore: "Incorrect integer value: 'NULL' for column" può essere risolto in due modi, ma per farlo devi avere privilegi alti per poter accedere alle impostazioni globali di MySql, probabilmente dovrai contattare il tuo provider per poter procedere.

     

    Metodo 1:

    Apri il file "my.ini" che si trova nella directory d'installazione di MySQL, e cerca qualcosa che sia simile a questo:

    # Set the SQL mode to strict
    sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

    Sostituiscilo con:

    # Set the SQL mode to strict
    sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

    In questo modo vai a togliere l'impostazione STRICT_TRANS_TABLE che comporta controlli più stringenti sulle INSERT dei record all'interno delle tabelle del database. Ovviamente è necessario riavviare il server di database MySql.

     

    Metodo 2:

    Puoi lanciare una query SQL dal tuo database management tool, quale ad es. phpMyAdmin, il quale normalmente lo trovi nel pannello di controllo del tuoweb hosting (provider):

    SET @@global.sql_mode='';

    Anche in questo modo dovresti assicurarti che MySql non sia più in modalità strict_mode, ed eviatare che ti dia l'errore "Incorrect integer value: NULL for column"

Rispondi

Per poter rispondere a questa domanda, devi essere registrato e loggato sul sito, dopodichè compila il box sottostante cercando di essere il più chiaro ed esauriente possibile, la tua risposta potrebbe essere la soluzione che l'utente cerca ed essere contrassegnata come migliore, consentendoti così di ottenere punti ed autorevolezza.

 Domanda Precedente

 Elenco Domande 

Domanda Successiva