Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was meint MySQL mit Spaltenanzahl, stimmt nicht mit der Wertanzahl in Zeile 1 überein?

Ihr employee Tabelle hat 7 Spalten, aber Sie geben 8 Werte für Insert an, was die Fehlermeldung erzeugt, die Sie erhalten.

Eine gute Angewohnheit ist es, die Spalten für insert aufzulisten in der Aussage. Dadurch ist diese Art von Fehler viel einfacher zu erkennen, da Sie nicht auf die Definition der Tabelle zurückblicken müssen (es verhindert auch, dass Ihre Abfrage fehlschlägt, wenn Sie irgendwann in der Zukunft jemals neue Spalten zur Tabelle hinzufügen - oder vorhandene Spalten löschen).

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);

Randnotiz:Bezeichner ohne Anführungszeichen first-name , die in create table zu sehen ist Aussage für employee , ist nicht gültig, da es einen Bindestrich enthält (- ). Ich nehme an, das ist ein Tippfehler und du meintest stattdessen einen Unterstrich (first_name ).