2017-07-26 27 views
2

Neu bei SQL-Anweisungen usw., und ich habe ein Problem mit dem, was ich auf Linux-Rechner mit squirrelSQL täteUnterstützung benötigt, um mit SQL-Anweisungen/Ausdrücke

ich eine Tabelle erstellt und verwendet, um die folgenden SQL-Anweisungen: -

INSERT INTO FIRSTTABLE VALUES 
    (11,'TEN','STEVE'),(21,'TWENTY','JO'),(31,'THIRTY','KIDS') 

ALTER TABLE FIRSTTABLE 
ADD SURNAME VARCHAR(15); 

dies funktioniert jedoch gut, wenn ich versuchen, die SQL-Anweisung i mit einzufügen Daten/Werte in die der Name Zeile i erleben Fehler halten, bin ist: -

INSERT INTO FIRSTTABLE (SURNAME) 
    VALUES ('THOMAS'),('THOMAS'),('THOMAS'),('THOMAS'); 

Dieser Teil icular Anweisung gibt den folgenden Fehler: -

Error: Column 'ID' cannot accept a NULL value. SQLState: 23502 ErrorCode: 30000

Ich möchte nur Daten hinzufügen/Werte in den Namen Spalte, nach einer neuen Spalte mit der Anweisung ALTER TABLE erstellen, ich habe mit vielen verschiedenen Kombinationen versucht, eine SELECT-Anweisung vor der INSERT-Anweisung, über den auch Fehler eine Anleitung gibt, wird sehr geschätzt,

+0

die ID einer Identity-Spalte machen, das ist Autoinkrement –

Antwort

2

Sie in Namen einfügen, ohne einen Wert auf den anderen Zuordnung Felder. Sie erhalten diese Fehlermeldung, weil die ID leer ist und nicht sollte.

Verstehen, dass INSERT neue Zeilen erstellt. Wenn Sie möchten vorhandene Zeilen ändern, verwenden Sie UPDATE

In diesem Fall könnten Sie UPDATE FIRSTTABLE SET SURNAME='THOMAS'; Weglassen der WHERE Klausel alle Felder in der Tabelle auswirkt.

Hoffe es hilft, und viel Glück in Ihrem Lernprozess!

+1

Dank für Ihre Hilfe danken! – Steve

0

der Ansatz ist falsch, müssen Sie:

UPDATE FIRSTTABLE SET SURNAME='THOMAS' WHERE ID IN (11, 21, 31) 
0

Durch Einfügen wird eine neue Zeile zur Tabelle hinzugefügt. Sie müssen also Update eine Reihe mit

UPDATE FIRSTTABLE SET SURNAME="THOMAS" WHERE ID=11