2010-08-16 6 views
11

Ich habe eine Tabelle mit den folgenden Spalten:Wie fügt man eine neue Zeile in die Datenbank mit der AUTO_INCREMENT-Spalte ein, ohne Spaltennamen anzugeben?

  • id - INT UNSIGNED AUTO_INCREMENT
  • name - VARCHAR (20)
  • group - VARCHAR (20)

Ich weiß, dass ich eine Zeile wie folgt hinzufügen kann:

INSERT INTO table_name (name, group) VALUES ('my name', 'my group') 

Ich frage mich, ob es eine Möglichkeit gibt, eine Zeile ohne Angabe der Spaltennamen hinzuzufügen, wenn keine Spalte AUTO_INCREMENT vorhanden ist?

Antwort

14

Für einige Datenbanken, können Sie einfach einfügen explizit eine NULL in die auto_increment Säule:

INSERT INTO table_name VALUES (NULL, 'my name', 'my group') 
+0

Großartig! Danke vielmals !! –

+8

Dies ist jedoch eine äußerst schlechte Praxis und sollte nicht getan werden. Sie sollten immer Anweisungen mit den Spaltennamen einfügen, wenn die Spalten irgendwie neu angeordnet werden, werden Sie die Daten in die falsche Spalte setzen. Wenn eine andere Spalte hinzugefügt wird, schlägt die Einfügung fehl. Ich kann nicht genug betonen, wie schlecht das ist. Sie können Ihre Datenintegrität aufgrund von ein wenig Faulheit zerstören. Und ehrlich gesagt, da Sie die Spaltennamen aus dem Objektbrowser ziehen und ablegen können, gehen wir davon aus, Ihre Daten zu riskieren, weil Sie zu faul waren, um eine zusätzliche Minute bei einer Aufgabe zu verbringen. – HLGEM

+0

OK, danke für den Hinweis! –

1

einfach die Spaltennamen hinzufügen, ja können Sie Null stattdessen aber ist eine sehr schlechte Idee, nicht Spalte zu verwenden Namen in jedem Einsatz, überhaupt.

8

Noch besser, verwenden Sie DEFAULT anstelle von NULL. Sie möchten den Standardwert speichern, keinen NULL, der einen Standardwert auslösen könnte.

Aber Sie sollten besser alle Spalten benennen, mit einem Stück SQL können Sie alle INSERT, UPDATE und DELETEs erstellen, die Sie benötigen. Überprüfen Sie einfach die information_schema und konstruieren Sie die Abfragen, die Sie benötigen. Es gibt keine Notwendigkeit, alles von Hand zu erledigen, SQL kann Ihnen helfen.

+0

Dies war hilfreich für Postgres. Die Verwendung von NULL führt zu 'FEHLER: Der Nullwert in der Spalte" ID "verletzt die Nicht-Null-Einschränkung" – Meredith

Verwandte Themen