尝试在mysql中插入datetime
值,但不插入。
BEGIN
DECLARE i datetime DEFAULT '2019-01-01 00:00:00';
WHILE i <= '2019-07-19 13:45:00'; DO
INSERT INTO support_data.datetime_sequence( date_time ) VALUES(i)
SET i = DATE_ADD(select max(date_time) from support_data.datetime_sequence,INTERVAL 1 SECOND);
END WHILE;
遇到此错误。
您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册以在'DECLARE i datetime DEFAULT'2019-01-01 00:00:00'附近使用正确的语法; 当我<='2019-07-19 13'在第二行
答案 0 :(得分:0)
如果这是一个存储过程,则存在许多错误1)多余;在做之前2)失踪;插入3)后没有结束语句与开始语句匹配4)set语句中的括号不正确,并且您可能没有set分隔符。 这是一个有效的版本。注意我删除了表的db限定符,将间隔增加到60秒,并添加了j作为故障安全退出循环。您可以根据自己的目的修改所有这些内容。
drop table if exists datetime_sequence;
create table datetime_sequence(date_time datetime);
drop procedure if exists p;
delimiter $$
create procedure p()
BEGIN
DECLARE i datetime DEFAULT '2019-01-01 00:00:00';
declare j int default 0;
WHILE i <= '2019-07-19 13:45:00' and j < 10 DO
INSERT INTO datetime_sequence( date_time ) VALUES(i) ;
SET i = (select DATE_ADD((select max(date_time) from datetime_sequence),INTERVAL 60 SECOND));
set j = j + 1;
END WHILE;
end $$
delimiter ;
call p();
+---------------------+
| date_time |
+---------------------+
| 2019-01-01 00:00:00 |
| 2019-01-01 00:01:00 |
| 2019-01-01 00:02:00 |
| 2019-01-01 00:03:00 |
| 2019-01-01 00:04:00 |
| 2019-01-01 00:05:00 |
| 2019-01-01 00:06:00 |
| 2019-01-01 00:07:00 |
| 2019-01-01 00:08:00 |
| 2019-01-01 00:09:00 |
+---------------------+
10 rows in set (0.00 sec)