Wie kann man eine Tabelle in Postgresql dazu bringen, eine Sequenz mit einer anderen Tabelle zu teilen?

Ruffydude

Grundsätzlich habe ich eine Tabelle1 mit eindeutigen IDs von Funktionen für eine Stadt, jetzt habe ich eine Tabelle2 für Funktionen für dieses Land.

Ich muss neue IDs für die Ländertabelle erstellen (diese müssen dieselbe Reihenfolge wie die Stadt haben, damit die IDs beim Querverweisen von Tabellen übereinstimmen)

Wie kann man table2 die gleichen IDs wie table1 in dieser Stadt und dann neue IDs für Features an anderer Stelle geben? Im Wesentlichen die Sequenz teilen

Bearbeiten: Die Tabellen sind bereits erstellt, wie kann ich table2 aktualisieren?

Balazs Gunics

Wenn Sie manuell eine Sequenz erstellen und diese als Standardwert den ID-Spalten zuweisen, dann funktioniert es. Um jedoch einen vorhandenen Wert wiederzuverwenden, müssten wir einen Trigger erstellen, der einen vorhandenen Wert zuweist oder einen neuen aus der gemeinsam genutzten Sequenz erhält.

create sequence baz;

create table foo(id bigint default nextval('baz'), value text);

create table bar(id bigint default nextval('baz'), value date);

insert into foo (value) values ('Hello');
insert into bar (value) values (now());
insert into foo (value) values ('World');
insert into bar (value) values (now());

select 'foo', id, value::text from foo 
union all
select 'bar', id, value::text from bar

Und das Ergebnis ist:

foo 1   Hello
bar 2   2018-10-29
foo 3   World
bar 4   2018-10-29

Und als Bonus:

drop sequence baz

ERROR: cannot drop sequence baz because other objects depend on it
  Detail: 
    default for table foo column id depends on sequence baz
    default for table bar column id depends on sequence baz
  Hint: Use DROP ... CASCADE to drop the dependent objects too.

Bearbeiten: Wenn wir eine Nachbearbeitung durchführen können, könnte dieser Ansatz verwendet werden, um Werte für die fehlenden ID-Spalten zuzuweisen:

update bar
SET id = coalesce((select id from foo where bar.city_name = foo.city_name),nextval('baz'))
WHERE id is null

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  3. 3

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  4. 4

    Eclipse Oxygen - Projekte verschwinden

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Wie kann ich den Kaskadenmodus global einstellen?

  7. 7

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  8. 8

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  9. 9

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  10. 10

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  11. 11

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  12. 12

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  13. 13

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  14. 14

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  15. 15

    Wie wählt man Unterschiede mit drei Tabellen aus?

  16. 16

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

  17. 17

    Wie kann ich meine Tabelle abfragen, um sie in mySQL nach 2 Feldern zu gruppieren?

  18. 18

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  19. 19

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  20. 20

    Modbus Python Schneider PM5300

  21. 21

    Wie kann eine gleichmäßige Lastverteilung in ElasticSearch mit Indizes mit unterschiedlicher Anzahl von Shards erreicht werden?

heißlabel

Archiv