Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengisi Jadual MySQL dengan Cekap dengan Julat Tarikh?

Bagaimana untuk Mengisi Jadual MySQL dengan Cekap dengan Julat Tarikh?

Linda Hamilton
Lepaskan: 2025-01-21 03:02:10
asal
913 orang telah melayarinya

How to Efficiently Populate a MySQL Table with a Range of Dates?

Pertanyaan julat tarikh MySQL: isi jadual dengan julat tarikh

Mengisi julat tarikh yang ditentukan secara manual dalam jadual MySQL boleh memakan masa. Untuk mengautomasikan proses ini, anda boleh menggunakan prosedur tersimpan untuk memasukkan berbilang tarikh ke dalam jadual sekaligus.

Penyelesaian

Prosedur tersimpan berikut filldates mengisi jadual bernama tablename dengan tarikh julat antara tarikh mula dan tarikh tamat:

DROP PROCEDURE IF EXISTS filldates;
DELIMITER |
CREATE PROCEDURE filldates(dateStart DATE, dateEnd DATE)
BEGIN
  WHILE dateStart <= dateEnd DO
    INSERT INTO tablename (datecolumn) VALUES (dateStart);
    SET dateStart = dateStart + INTERVAL 1 DAY;
  END WHILE;
END |
DELIMITER ;
Salin selepas log masuk

Untuk menggunakan prosedur ini, panggilnya dengan tarikh mula dan tamat yang diingini:

CALL filldates('2011-01-01','2011-12-31');
Salin selepas log masuk

Ini akan memasukkan semua tarikh antara 1 Januari dan 31 Disember 2011 ke dalam jadual tablename.

Semak tarikh sedia ada

Anda boleh meningkatkan proses ini untuk menyemak sama ada tarikh sudah wujud dalam jadual sebelum memasukkannya:

CREATE PROCEDURE filldates(dateStart DATE, dateEnd DATE)
BEGIN
  DECLARE adate DATE;
  WHILE dateStart <= dateEnd DO
    SELECT datecolumn INTO adate FROM tablename WHERE datecolumn = dateStart LIMIT 1;
    IF adate IS NULL THEN
      INSERT INTO tablename (datecolumn) VALUES (dateStart);
    END IF;
    SET dateStart = dateStart + INTERVAL 1 DAY;
  END WHILE;
END;
Salin selepas log masuk

Ini akan menghalang tarikh pendua daripada dimasukkan ke dalam jadual.

Atas ialah kandungan terperinci Bagaimana untuk Mengisi Jadual MySQL dengan Cekap dengan Julat Tarikh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan