Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengisi Jadual MySQL dengan Cekap dengan Julat Tarikh?
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:
<code class="language-sql">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 ;</code>
Untuk menggunakan prosedur ini, panggilnya dengan tarikh mula dan tamat yang diingini:
<code class="language-sql">CALL filldates('2011-01-01','2011-12-31');</code>
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:
<code class="language-sql">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;</code>
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!