sql >> Database >  >> RDS >> Mysql

Wat betekent MySQL met het aantal kolommen komt niet overeen met het aantal waarden in rij 1

Uw employee tabel heeft 7 kolommen, maar u geeft 8 waarden op voor invoegen, wat de foutmelding genereert die u krijgt.

Een goede gewoonte is om de kolommen voor insert op te sommen in de verklaring. Dit maakt dit type fout veel gemakkelijker te herkennen, omdat u niet terug hoeft te kijken naar de definitie van de tabel (het voorkomt ook dat uw query mislukt als u ooit in de toekomst nieuwe kolommen aan de tabel toevoegt - of verwijder bestaande kolommen).

INSERT INTO employee(emp_id, first_name, birth_day, sex, salary, super_id, branch_id)
VALUES(100, 'David', 'Wallace', '1967-11-17', 'M', 250000, NULL);

Kanttekening:niet-geciteerde identifier first-name , dat is te zien in de create table verklaring voor employee , is niet geldig - omdat het een streepje bevat (- ). Ik neem aan dat dit een typefout is en dat je in plaats daarvan een onderstrepingsteken bedoelde (first_name ).




  1. ROracle dbWriteTable Oracle TIMESTAMP-kolommen maken voor R DATE-kolommen

  2. Selecteer alleen de nieuwste gegroepeerde items

  3. GEBRUIK en AAN mixen in Oracle ANSI join

  4. oracle - converteer veel datumnotaties naar een enkele opgemaakte datum