2016-05-31 14 views
-2

Ich versuche, Informationen in eine Ansicht einzufügen, die in meiner Datenbank erstellt wurde und sehr allgemeine Fehler verursacht.SQL in eine Ansicht einfügen

1062 - doppelter Eintrag ‚0‘ für Schlüssel ‚Primär‘ - neuer Fehlercode

 INSERT INTO eagle2 
      (hotelname, 
      hotelcity, 
      hotelpostcode) 
VALUES  ('EaglePalace', 
      'Sydney', 
      '2000') 

INSERT INTO eagle2 
      (hotelname, 
      hotelcity, 
      hotelpostcode) 
VALUES  ('EagleRegis', 
      'Perth', 
      '6000') 

von diesen beiden sowohl getrennt als auch zusammen nicht funktionieren, und ich weiß, es ist wahrscheinlich so einfach aber ich habe schon 2 Stunden damit verschwendet.

Ich habe eine Ansicht, die ich bereits Eagle2 genannt und jetzt möchte nur die zwei neuen Zeilen einfügen.

eagles2

+3

Sie können keinen Wert in eine Ansicht einfügen. Es ist nur eine virtuelle Tabelle. – Karthikeyan

+0

Dies ist Teil meines Diploms, es ist eine der Einheiten .. Ist die Einheit eigentlich falsch? – Slappy

+0

Sie können keine Daten in eine Ansicht einfügen. Stattdessen müssen Sie die Daten in die Tabelle (n) einfügen, auf denen die Ansicht erstellt wird. – Patrick

Antwort

2

Sie sagen nicht, was SQL Server Sie verwenden. Nicht alle Server unterstützen die Aktualisierung von Daten über Ansichten.

Wenn Sie eine Datenbank verwenden, wo es möglich ist, dann sollten Sie wissen, dass nicht alle Ansichten aktualisiert werden können. Es hängt davon ab, ob die Datenbank herausfinden kann, welchen Datensatz sie ändern soll oder nicht.

So eine Ansicht wie folgt aus:

CREATE VIEW test AS select a, b, c from Foo where filtercol=2 

konnte aktualisiert werden, aber eine Ansicht mit komplizierten Verknüpfungen und dergleichen konnte nicht - Da die Datenbank nicht arbeiten können, was in der Quelle aufzeichnet Tabellen geändert werden müssen.

EDIT: Ich habe vergessen, hinzufügen, dass mit einigen Datenbanken können Sie einen Trigger, der auf einer komplizierten Ansicht ausgelöst, dass die Datenbank was für die Einfügung/Update/Delete Operationen statt (Postgres erlaubt einen "statt" Trigger) um dies zu unterstützen)

+0

Ich benutze phpmyadmin, sorry ich vergesse, es gibt Alternativen, ich bin nur neu in all dem. Es ist eine Ansicht, die buchstäblich aus einer einzelnen Tabelle erstellt wurde, aber ich bekomme immer noch denselben Fehler, obwohl ich versuche, sie in die ursprüngliche Tabelle einzufügen. – Slappy

+0

Okay, Sie verwenden MySQL, von dem ich weiß, dass es diese unterstützt. Welche Version von MySQL verwenden Sie? –

+0

5.0.12? Ich denke.Es ist das neueste vor ein paar Wochen, ich habe es gerade wieder auf den lokalen Host auf meinem Laptop heruntergeladen. – Slappy