Daten mit dem INSERT Befehl randomisiert in Tabelle abspeichern

sflor

Neuer Benutzer
Beiträge
1
Hallo zusammen,

ich benötige Hilfe beim Erstellen von Daten auf einem MySQL-Server, und zwar:

Sollen nach jeder einzelnen Befüllung der Tabelle Emails mit der einzigen Spalte "Email-Adresse" alle Zeilen dieser Spalte, ergo alle Email-Adressen "durcheinander" geworfen werden, sprich randomisiert werden. Und dies nicht bei der Ausgabe der Daten, sondern bei der Datenbankstruktur selbst. Sinn und Zweck dessen ist es, dass man keine Rückschlüsse ziehen kann, welche Email-Adresse zu welchem Zeitpunkt in die Tabelle eingetragen wurde mit dem INSERT Befehl. Leider finde ich im Internet nur Möglichkeiten, wie man die Daten randomisiert ausgibt. Nicht jedoch, wie man selbige randomisiert abspeichert.

Vielen Dank schon einmal im Voraus,

Lg Tim
 
Werbung:
Die Inhalte von Tabellen sind per se nicht sortiert, es handelt sich nur um Mengen. Aber ich versteh Dein Anliegen...

Code:
test=# create table email(email text);
CREATE TABLE
test=*# insert into email select 'email' || s::text || '@maildomain' || s::text || '.tld' from generate_Series(1,10) s;
INSERT 0 10
test=*# select * from email ;
          email           
--------------------------
 email1@maildomain1.tld
 email2@maildomain2.tld
 email3@maildomain3.tld
 email4@maildomain4.tld
 email5@maildomain5.tld
 email6@maildomain6.tld
 email7@maildomain7.tld
 email8@maildomain8.tld
 email9@maildomain9.tld
 email10@maildomain10.tld
(10 Zeilen)
test=*# with tmp as (delete from email returning email) insert into email select * from tmp order by random();
INSERT 0 10
test=*# select * from email ;
          email           
--------------------------
 email2@maildomain2.tld
 email4@maildomain4.tld
 email10@maildomain10.tld
 email9@maildomain9.tld
 email5@maildomain5.tld
 email6@maildomain6.tld
 email1@maildomain1.tld
 email3@maildomain3.tld
 email7@maildomain7.tld
 email8@maildomain8.tld
(10 Zeilen)

test=*#


Andreas
 
Zurück
Oben