Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [mysql] errore in una query

    Salve

    seguendo un tutorial su internet sono incappato in un errore che non mi so spiegare

    struttura della tabella

    CREATE TABLE IF NOT EXISTS `customers` (
    `ID` int(11) unsigned NOT NULL AUTO_INCREMENT,
    `FirstName` varchar(150) DEFAULT NULL,
    `LastName` varchar(150) DEFAULT NULL,
    `Address` varchar(255) DEFAULT NULL,
    `PhoneNumber` varchar(30) DEFAULT NULL,
    `RegistrationDate` date NOT NULL,
    `AccountType` int(5) DEFAULT '0',
    PRIMARY KEY (`ID`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1


    questa query da errore:
    INSERT IGNORE INTO customers
    VALUES
    (NULL, 'Enrico, 'Rossi', 'Viao MB', '4564')
    Errore: #1136 - Column count doesn't match value count at row 1

    questa query funziona:
    INSERT IGNORE INTO customers
    (`ID`, `FirstName`, `LastName`, `Address`, `PhoneNumber`)
    VALUES
    (NULL, 'Enrico, 'Rossi', 'Viao MB', '4564')

    nella query errata non c'è l'elenco del nome dei campi, ma in teoria dovrebbe funzionare comunque associando i campi ai valori nell'ordine in cui sono stati creati
    semplicità ... al sol nominarla sembra svanire

  2. #2
    l'errore è dovuto dal fatto che se non specifichi su quali campi iserire i dati (prima query) lui cerca di inserire i dati su tutti i campi della tabella. Quindi a fronte di una tabella di 7 campi, tu passi cinque valori. L'errore infatti dice che il numero delle colonne non corrisponde al numero di valori.

    Se invece vuoi inserire dei valori solo su alcuni campi e lasciare gli altri a NULL devi fare come la seconda tabella

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 © 2026 vBulletin Solutions, Inc. All rights reserved.