Archive for Helferlein

Test Tabellen erstellen per PROCEDURE

Ronald Bradfrods Blogeintrag über MVCC Merkwürdigkeiten in MySQL hat mich inspiriert seine Variante mal anzutesten wie er sich Tabellen mit Inhalt anlegt.
Und seine Funktion dann so anzupassen das eine Tabelle auch mit String Feldern und einem timestamp gefüllt werden kann.

Tabelle anlegen:

create table stringtab
( id int unsigned not null primary key auto_increment,
  f1 varchar(512) not null,
  f2 varchar(512) not null,
  ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) engine=innodb;

Dann die passende Funktion:

DELIMITER $$
DROP PROCEDURE IF EXISTS `fill_strings` $$
CREATE PROCEDURE `fill_strings`(in p_max int)
    DETERMINISTIC
begin
  declare counter int default 1;
  truncate table stringtab;
  insert into stringtab values (1,1,1,now());
  while counter < p_max
  do
      insert into stringtab (f1, f2, ts)
          select  right (concat(counter,f1,"blah"),511),
                    right (concat(f1,"blub",f2),511),
                    from_unixtime(RAND()*1251885200)
          from stringtab;
      select count(*) from stringtab into counter;
  end while;
  select counter;
end $$
DELIMITER ;

aufgerufen wird das ganze dann so:

call fill_strings(130);

Die Funktion gibt dann die tatsächlich eingefügten Zeilen als Rückgabewert aus.

Und für was man das ganze dann alles verwenden kann darauf gehe ich dann im nächsten Artikel ein ;)

Kommentare