2017-08-01 3 views
0

Ich möchte einfügen, aktualisieren, löschen Anweisung für eine interne Tabelle in Greenplum, ich möchte Daten einer internen Tabelle mithilfe der externen Tabelle aktualisieren. meine interne Tabelle DDL ist create table test ( "ID" bigint, "a" char(10), "b" char(10), primary key ("a") )DISTRIBUTED BY ("a"); Wie führe ich Updates in Greenplum aus?

Wenn ich Update auf dieser Tabelle ich den Fehler

bekommen ausführen
  • ERROR: Kann prallelize eine Update-Anweisung nicht, dass die Verteilung Spalten aktualisiert * Wie soll ich weitermachen ?
+0

Sie können die Spalte "a" nicht aktualisieren, da Sie die Daten auf diese Weise verteilen. Ich empfehle Ihnen auch, den Primärschlüssel aus der Tabelle zu entfernen. Es wird nicht benötigt. –

+0

Ich versuche, ein Data-Warehouse in Greenplum zu erstellen, also möchte ich die Primärschlüssel-Einschränkung geben, Wie ich weitergehen soll, um die Einschränkung zu definieren – vkumar

+0

Wie definieren Sie eine Primärschlüsseleinschränkung? Altertabelle Test hinzufügen Primärschlüssel (a); Aber deine ursprüngliche Frage betrifft die Aktualisierung. Sie können die Verteilungsspalte nicht aktualisieren. Wählen Sie daher eine andere Spalte für die Verteilung aus oder aktualisieren Sie diese Spalte nicht. –

Antwort

0

Obwohl Anuraag hat Ihre Frage beantwortet, aber es gibt auch eine andere Möglichkeit, Ihren Tisch

Zuerst ändern Sie Ihre verteilte Klausel Alter Tabelle Tabellenname Satz zufällig verteilt zu aktualisieren.

Zweitens führen Sie Ihre Update-Skript

Drittens setzen Sie verteilte Klausel Alter Tabelle Tabellenname durch (a) Set verteilt.

Die Datensätze in den Segmenten neu gruppieren Ändern Sie den Namen der Tabellestabelle (mit reorganize = true).