-
UUID
gibt es auf der AS400 einen ähnlichen SQL Befehl wie den SELECT NEWID()
auf dem SQL Server?
Wenn ja, kann ich ein Beispiel haben?
Vielen Dank
-
Nein, gibt es leider nicht.
Hier musst du die C-Funktion GENUUID aufrufen, die dann die MI-Instruction aufruft:
https://www.ibm.com/support/pages/ge...re-random-uuid
-
... mit GENUUID wäre ich vorsichtig, da hieß es in der Doku "most likely unique" und auf Multiprozessor-Maschinen gab es Kollisionen und ich gehe mal davon aus, dass das immer noch so ist.
D*B
-
So weit ich weiß, gibt es das nicht direkt in SQL. Aber es gibt eine von IBM eine API "_GENUUID", mit der man mit RPG UUIDs generieren kann. Wenn man so ein RPG-Programm hat, könnte man das eine SQL-UDF einpacken und man hätte die gewünschte Funktion auch im SQL.
Hier ein Beispiel für das RPG:
Code:
dcl-proc um_crtUUID export;
dcl-pi *n char(36)
end-pi;
D UUID_template Ds
D UtBytPrv 10u 0 Inz( %Size( UUID_template ))
D UtBytAvl 10u 0
D 8a Inz( *Allx'00' )
D UUID 16a
D Reply 1a
D GenUuid PR ExtProc('_GENUUID')
D UUID_template * Value
GenUuid( %Addr( UUID_template ));
return UUID;
end-proc;
-
OK vielen Dank für die Hinweise.
Das RPG Beispiel kenne ich schon
GENUUID ist ja vllcht wirklich nichts
Na denn, ich hab gedacht es gibt einen fertigen SQL Befehl, den mir evtl. Birgitta mitteilt.
Vielen Dank nochmal
Grüße Dschainers
-
Es gibt SQL Sequenzen die du dafür verenden kannst.
Ansonsten kannst du beim Erstellen bei Tabellen eine IDENTITY Spalte erstellen, wo die ID automatisch vom System generiert wird.
lg Andreas
-
Wenn ich Dschainers richtig verstehe, sucht er ja keine eindeutige ID für eine Tabelle, sondern eine weltweit eindeutige ID.
-
Laut dem Link der IBM ist das Generieren ja verbessert worden.
Ein Kunde (AS-Mike) von mir verwendet diese Routine auf einer P9 inzwischen für die Web-Kommunikation und doppelte ID's hats bis jetzt nicht gegeben.
-
... sollte eine Identity Column nicht ausreichen (z.B. weil auf unterschiedlichen Systemen in die "gleiche" Tabelle geschrieben wird und die Tabellen irgendwann wieder zusammengemischt werden)...
Hast Du Dir schon einmal die Funktion GENERATE_UNIQUE() angeschaut
GENERATE_UNIQUE()
oder den Datentyp ROWID
[URL="https://www.ibm.com/docs/en/i/7.5?topic=types-row-id-values"]ROWID?
-
Vielen Dank für die Antworten.
Ich schau mal was ich da gebrauchen kann.
Dschainers
-
Zitat von dschroeder
Wenn ich Dschainers richtig verstehe, sucht er ja keine eindeutige ID für eine Tabelle, sondern eine weltweit eindeutige ID.
Eine Sequenz ist nicht zwangsläufig auf eine Tabelle beschränkt.
Damit bekommst du einfach jedes mal einen eindeutigen Wert, den du für was auch immer verwenden kannst.
Bei einer eindeutigen ID für eine Tabelle würde ich eine IDENTITY Spalte definieren.
-
Zitat von Fuerchau
Laut dem Link der IBM ist das Generieren ja verbessert worden.
Ein Kunde (AS-Mike) von mir verwendet diese Routine auf einer P9 inzwischen für die Web-Kommunikation und doppelte ID's hats bis jetzt nicht gegeben.
... kommt doch immer auf die Anwendung an. Vor identity column und Gedöns auf der AS/400 habe ich mal den Vorschlag genuuid für database keys evaluiert und da haben wir uns im massiv parallel Betrieb wegen Kollisionen für eine andere Lösung entschieden. Gängige Varianten für UUIDs verwürfeln die mac mit einem Timestamp, sind also nur fast eindeutig (most likely unique). Wenn der Timestamp bis zur Taktfrequenz verfeinert wird, bleibt immer noch ein Problem bei Multiprozessor Maschinen (den man mit einem zusätzliche RAND() optimieren kann. Für eine Webanwendung sind die theoretisch denkbaren doppelten Keys meist hinnehmbar, für Datenbankkeys erzeugen sie zusätzlichen Aufwand und schlechtere Fehlertoleranz.
D*B
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks