Vorhandene Primärschlüssel aus CSV übernehmen und fortführen

JamesByrnes

Benutzer
Beiträge
8
Hallo,

ich habe zum Thema Primärschlüssel/Fremdschlüssel eine Frage zwecks Iteration.
Zunächst die Ausgangslage meine Rohdaten Tabellen als csv-Dateien, die aus ISAM-Dateien gezogen wurden. Ich muss jetzt aus den gesamten Daten-Tabellen eine MySQL/MariaDB-Datenbank entwickeln.
Ich nehme als Beispiel kunde.cvs. Hier habe ich eine Spalte "KD-Nr" mit einem Anfangswert von 4111 (erster Kunde) und dann wächst das meistens um 1 an. Es können aber auch auf 4139 direkt 4141 oder auf 4157 direkt 4167 folgen usw. Bei artikel.csv ist das noch viel wilder:
271050​
271070​
279350​
279400​
279700​
279950​
279960​
279970​
279980​
284950​
284960​
284970​
284980​
804122​
804123​
804124​
804125​
804126​
804127​
804128​
804129​
804130​
904461​
990035​
1001​
805201​
805202​
90101​
90102​
90103​
90901​
90902​
807001​

Ich hoffe, ihr könnt mir folgen.
Kann ich das jetzt so jetzt in mein Primärschlüssel-Feld in MariaDB so einfügen und sobald neue Kunden oder Artikel hinzukommen iteriert der Schlüssel bei dem größten Wert weiter mit dem Wert 1 weiter?
Oder wird das nicht funktionieren?

Viele Grüße
James
 
Werbung:
Sorry, um 1 iterieren, also hoch zählen.
Erkennt das MariaDB, wo es weitermachen soll?
Unwahrscheinlich. In PG müßte man die Sequence entsprechend bearbeiten:

Code:
postgres=# \h alter sequence
Command:     ALTER SEQUENCE
Description: change the definition of a sequence generator
Syntax:
ALTER SEQUENCE [ IF EXISTS ] name
    [ AS data_type ]
    [ INCREMENT [ BY ] increment ]
    [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]
    [ START [ WITH ] start ]
    [ RESTART [ [ WITH ] restart ] ]
    [ CACHE cache ] [ [ NO ] CYCLE ]
    [ OWNED BY { table_name.column_name | NONE } ]
ALTER SEQUENCE [ IF EXISTS ] name SET { LOGGED | UNLOGGED }
ALTER SEQUENCE [ IF EXISTS ] name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER SEQUENCE [ IF EXISTS ] name RENAME TO new_name
ALTER SEQUENCE [ IF EXISTS ] name SET SCHEMA new_schema

URL: https://www.postgresql.org/docs/15/sql-altersequence.html

postgres=#
 
Werbung:
Mag sein. Allerdings mache ich dann doch lieber einen ganz separaten Primärschlüssel, denn ich habe soeben erfahren, dass die "bisherigen Primärschlüssel" Kd-Nr. und Artikel-Nr. frei und manuell ertragbar sein müssen.
Somit ist die Diskussion hinfällig, da Kd-Nr. und Artikel-Nr. zu ordinären Feldern ungleich NULL werden.

Vielen Dank
James
 
Zurück
Oben