MariaDB ストアドプロシージャを使って1日ごとに連続した日付データを作成する

MariaDB ストアドプロシージャを使って1日ごとに連続した日付データを作成する

MariaDBで、ストアドプロシージャを使って1日ごとに連続した日付データを作成する手順を記述してます。ここではテスト用のテーブルを作成して、そこで実行してます。

環境

  • OS CentOS Stream release 9
  • MariaDB 10.10.2
  • phpMyAdmin 5.2.0

手順

最初にテスト用のテーブルを作成します。

CREATE TABLE `sample` (
  `id` INT AUTO_INCREMENT,
  `name`  VARCHAR(255) NOT NULL,
  `created_at` DATETIME NOT NULL,
  PRIMARY KEY (`id`, `created_at`) 
);

次に、1日ごとに加算していくストアドプロシージャ「loop_sample」を作成します。

drop procedure if exists loop_sample;
delimiter //

CREATE PROCEDURE `loop_sample`(in i int)
begin
  declare cnt int default 0;
  while cnt < i do    
    insert into sample (name,created_at) values(concat('data',cnt),DATE_ADD('2020-01-01',INTERVAL cnt DAY));
    set cnt = cnt + 1;
  end while;
end

//

実行結果

ストアドプロシージャができれば、後は、引数に作成したいデータの個数を指定して実行します。

ここでは10000件作成します。

call loop_sample(10000)

日付データが、1日ごとに加算されているものが作成されていることが確認できます。