DB mit Zufallswerten füllen

dcst55

Aktiver Benutzer
Beiträge
48
Hallo zusammen,

ich habe eine Tabelle, die wie folgt aufgebaut ist:

Code:
`id` int(11) NOT NULL AUTO_INCREMENT,
  `zufall` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `datum` datetime NOT NULL,
  `unix_time` int(11) NOT NULL,
  `status` enum('A','B','C') COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`)

Diese Tabelle möchte ich mit zufälligen Werten füllen.
Dabei soll das Datum, welches je in die Spalte "datum" eingefügt wird, ebenfalls als unix_time in die Spalte unix_time eingefügt werden.
Damit tue ich mich allerdings etwas schwer....

Mein Zufallsfüllskript sieht wie folgt aus:

Code:
INSERT INTO randomtable (zufall, datum, unix_time, status)
SELECT CONCAT('Ein zufälliger Text ', FLOOR(RAND() * 10000000)) as zufall,
FROM_UNIXTIME(UNIX_TIMESTAMP('2023-02-20 00:00:00') + FLOOR(RAND() * 31536000)) as datum,
UNIX_TIMESTAMP(datum) as unix_time,
ELT(1 + FLOOR(RAND() * 3), 'A','B','C') as status
FROM INFORMATION_SCHEMA.TABLES LIMIT 100;

Hierbei wird mir angemeckert, dass das Feld datum nicht bekannt sei:
Code:
ERROR 1054 (42S22): Unknown column 'datum' in 'field list'
 
Werbung:
Du kannst nicht auf einen Spaltenalias zugreifen, den du im selben SQL-Level definert hast. Eine mögliche Lösung:

Code:
postgres=# create table zufall(id int generated always as identity primary key, x int, "x+10" int);
CREATE TABLE
postgres=# with r as (select (random()*100::int) s from generate_series(1,10)as s) insert into zufall (x, "x+10") select s, s+10 from r;
INSERT 0 10
postgres=# select * from zufall;
 id | x  | x+10 
----+----+------
  1 | 14 |   24
  2 | 55 |   65
  3 |  9 |   19
  4 | 95 |  105
  5 | 52 |   62
  6 | 37 |   47
  7 | 68 |   78
  8 | 24 |   34
  9 | 82 |   92
 10 | 31 |   41
(10 rows)
 
Werbung:
Zurück
Oben