Werte bei auto increment eintragen ?

Hallo Leute,

ich habe eine Frage zum Einfügen von Werten in eine Tabelle.

Und zwar habe ich hier Musterlösungen die mich ein bisschen verwirren, denn…

Im 1. Fall folgende Konstellation:

CREATE TABLE Lehrgang
( LNR int NOT NULL,
Titel varchar(50) NOT NULL,
DNR int NOT NULL,
PRIMARY KEY (LNR)
);

Jetzt wird ein Datensatz hinzugefügt…

INSERT INTO Lehrgang (LNR,Titel,DNR)
VALUES ( ‚‘ ,‚Mathe‘,‚1‘),…;

Darf man bei den VALUES das Feld LNR wirklich leer lassen ?
Ich dachte man lässt LNR nur dann leer ‚‘ wenn LNR AUTO_INCREMENT ist ?

Und ist der 2. Fall auch richtig ?

CREATE TABLE dokument (
DNR int NOT NULL auto_increment PRIMARY KEY,
dateiformat varchar(10) NOT NULL,
bezeichnung varchar(30) NOT NULL,
VNR int NOT NULL
);

INSERT INTO dokument (DNR,dateiformat, bezeichnung,VNR)
VALUES
( 1 , ‚DOC‘, ‚Test1‘, 1),
( 2 , ‚JPG‘, ‚Test2‘, 2);

Darf man hier für DNR die 1 und 2 eintragen ? Ist doch auto_increment ?

Vielen Dank !

Moin, Fluppylubi,

warum probierst Du’s nicht einfach aus? Ich bin gerade zu faul, aber m.E. ist beides falsch:

  • Wenn ein Feld als NOT NULL, aber nicht AutoIncrement definiert ist, muss der Eingabewert von NULL verschieden sein.
  • Wenn ein Feld AutoIncrement ist, darf es in der Feldliste beim Insert gar nicht angegeben werden.

Gruß Ralf