Errore create SQLSTATE[42S22]: Column not found: 1054 Unknown column

di il
8 risposte

Errore create SQLSTATE[42S22]: Column not found: 1054 Unknown column

Buongiorno a tutti,

Sto creando un sito in Laravel per volontariato, ora sto facendo la seconda create, poiché si tratta di tutti i paesi di tutti i comuni di tutte le regioni italiane ho dovuto acquistare e importare l'apposito database già compilato, ho aggiunto alcune colonne...

Questa è la tabella del database di cui sto parlando

Ora però che devo aggiungere dei dati in questa tabella e mi dà questo errore! Ovviamente non ho fatto la migrazione poiché altrimenti andrebbe a sovrascrivere i dati che ci sono già all'interno...

Qualcuno mi può dare una dritta su come posso trattare questa casistica?

Ringrazio tutti fin d'ora e chiedo scusa forse per la domanda fin troppo banale

8 Risposte

  • Re: Errore create SQLSTATE[42S22]: Column not found: 1054 Unknown column

    La colonna state c'è? Così su due piedi senza conoscere i campi della tabella che hai acquistato..

  • Re: Errore create SQLSTATE[42S22]: Column not found: 1054 Unknown column

    26/06/2023 - sihsandrea ha scritto:


    La colonna state c'è? Così su due piedi senza conoscere i campi della tabella che hai acquistato..

    Ciao, non c'è e ho trovato che non ci sono le colonne del timestamps, Perciò ho inserito una piccola riga all'interno del model:

     public $timestamps = false;
  • Re: Errore create SQLSTATE[42S22]: Column not found: 1054 Unknown column

    Inserendo la riga di codice suddetta adesso mi dà questo errore:

    SQLSTATE[HY000]: General error: 1364 Field 'id_regione' doesn't have a default value (SQL: insert into `italy_regions`
  • Re: Errore create SQLSTATE[42S22]: Column not found: 1054 Unknown column

    Si vabbè mica si opera alla cieca…

    Che tabella hai acquistato, su che db, che campi ha e di che natura?

    La tabella dove vuoi importare ha gli stessi campi? Della stessa natura? Nello stesso ordine?

    Prima importi, poi aggiungi tutte le colonne che vuoi.

    Che comando usi per importare? Su che db operi? Un file csv non l'avevano?

  • Re: Errore create SQLSTATE[42S22]: Column not found: 1054 Unknown column

    Ciao, non voglio farti operare alla cieca anzi, ti ringrazio per il prezioso supporto!

    Ho acquistato un database intero di tutti i comuni italiani e di tutte le città italiane, da comuniitaliani.It

    dopodiché ho aggiunto le mie tabelle e i campi qui sotto Sono quelli che ho inserito in questa tabella:

    img

    desc

    donde

    altImg

    Quindi, come puoi vedere dall'immagine inserita nel primo post la tabella è esattamente quella.

  • Re: Errore create SQLSTATE[42S22]: Column not found: 1054 Unknown column

    26/06/2023 - Ranius ha scritto:


    SQLSTATE[HY000]: General error: 1364 Field 'id_regione' doesn't have a default value (SQL: insert into `italy_regions`

    Questo errore mi sembra piuttosto esplicativo: stai effettuando una INSERT dentro la tabella “italy_regions” senza specificare il valore per il campo “id_regione”, che però non ha un default value (ed evidentemente non può essere nullo… dall'immagine che hai postato sembra essere proprio la chiave primaria).

    Forse pensavi che fosse un auto-incrementante? Beh, a quanto pare non lo è. Devi dargli tu il valore.

    PS: Sarebbe più semplice se postassi la query che stai usando per l'inserimento.

  • Re: Errore create SQLSTATE[42S22]: Column not found: 1054 Unknown column

    30/06/2023 - SpiritoLibero ha scritto:


    26/06/2023 - Ranius ha scritto:


    SQLSTATE[HY000]: General error: 1364 Field 'id_regione' doesn't have a default value (SQL: insert into `italy_regions`

    Questo errore mi sembra piuttosto esplicativo: stai effettuando una INSERT dentro la tabella “italy_regions” senza specificare il valore per il campo “id_regione”, che però non ha un default value (ed evidentemente non può essere nullo… dall'immagine che hai postato sembra essere proprio la chiave primaria).

    Forse pensavi che fosse un auto-incrementante? Beh, a quanto pare non lo è. Devi dargli tu il valore.

    PS: Sarebbe più semplice se postassi la query che stai usando per l'inserimento.

    Per l'inserimento con laravel sto facendo così:

        public function store(Request $request)
        {
    
            $italy_regions = Italy_regions::create([
    
                'img' => $request->file('img')->store('public/imgs'),
                'regione' => $request->regione,
                'desc' => $request->desc,
                'capoluogo' => $request->capoluogo,
                'superficie' => $request->superficie,
                'num_residenti' => $request->num_residenti,
                'num_comuni' => $request->num_comuni,
                'num_provincie' => $request->num_provincie,
                'presidente' => $request->presidente,
                'cod_istat' => $request->cod_istat,
                'cod_fiscale' => $request->cod_fiscale,
                'piva' => $request->piva,
                'pec' => $request->pec,
                'sito' => $request->sito,
                'sede' => $request->sede,
                'donde' => $request->donde,
                'altImg' => $request->altImg,
            ]);	

    Non sapendo come far diventare auto incrementare id_regione semplicemente stavo pensando di riscrivervi tutte le tabelle a mano

  • Re: Errore create SQLSTATE[42S22]: Column not found: 1054 Unknown column

    A naso direi che stai usando SQL Server: se è così, da SQL Server Management Studio, modifichi la tabella settando il campo id_regione come IDENTITY.

    (Tasto destro sul nome della tabella - > Progetta), selezioni il campo e nella parte bassa Specifica Identity - > Identity SI, Incremento Identity 1, Valore inizializzazione identity metti il valore massimo del id_region già presente + 1

    In alternativa: prima di fare l'inserimento, fai una SELECT del MAX di quel campo poi ci fai un +1 e usi quel valore nella INSERT (se non hai problemi di multiutenza in questa fase e non hai problemi di transazionalità pouoi andare abbastanza tranquillo).

Devi accedere o registrarti per scrivere nel forum
8 risposte