Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Firebird: viele Testdaten erzeugen (https://www.delphipraxis.net/142762-firebird-viele-testdaten-erzeugen.html)

Jürgen Thomas 3. Nov 2009 10:34

Datenbank: Firebird • Version: 2.1 • Zugriff über: IBExpert Personal

Firebird: viele Testdaten erzeugen
 
Hallo,

für Wikibooks: Einführung in SQL möchte ich im Kapitel "Änderung der Datenbankstruktur" ein Verfahren einbauen, mit dem auf einfache Weise viele Testdatensätze erzeugt werden können, und zwar auch unter Berücksichtigung von ForeignKeys. Einer der möglichen Wege ist mir bekannt und (jedenfalls im Prinzip) vertraut:
  1. mehrere temporäre Tabellen mit Werten für die verschiedenen Spalten erzeugen
  2. mit dem kartesischen Produkt oder per Zufallsfunktion diese Werte mischen und in den Zieltabellen speichern
  3. die temporären Tabellen löschen
Dieses Verfahren könnte auch in einer StoredProcedure zusammengefasst und versteckt werden.

Da es sich um eine Einführung in SQL handelt, möchte ich nicht zu sehr in die Tiefe gehen und z.B. die Beispieldatenbank nicht zu sehr ändern. Deshalb interessiert mich:
  • Gibt es ein einfacheres Verfahren?
  • Können anstelle von temp. Tabellen Arrays in SELECT bzw. INSERT eingebaut werden?
  • Übersehe ich andere Möglichkeiten?
Zu den Arrays ist mir folgender Gedanke gekommen: Benutze für eine Namensliste einen String ähnlich diesem:
SQL-Code:
'Meyer    Müller  SchnackingGroß      ';
Also eine Anzahl von Werten mit gleicher Länge (hier: 10 Zeichen), auf die per Zufallswert und Index (1, 11, 21 usw.) zugegriffen wird. Das könnte die temp. Tabellen überflüssig machen, würde aber die Kombination von INSERT und SELECT bei 10 Spalten pro Tabelle ziemlich unübersichtlich machen.

Gibt es bessere Ratschläge und Hinweise? Danke! Jürgen

PS. Ich weiß, dass die Vollversion von IBExpert Testdaten generieren kann. Es geht mir um ein Verfahren, das auf andere SQL-Dialekte übertragbar sein soll und deshalb möglichst mit "reinem" SQL auskommen soll.

Jürgen Thomas 5. Nov 2009 09:11

Re: Firebird: viele Testdaten erzeugen
 
Zitat:

Zitat von Jürgen Thomas
Gibt es bessere Ratschläge und Hinweise?

Danke für Ergänzungen! Jürgen


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz