在MySQL中编写带有事件的while循环

Writing a While Loops with Events in MySQL

提问人:hakankumas 提问时间:3/9/2023 最后编辑:Sherif O.hakankumas 更新时间:3/9/2023 访问量:168

问:

我想在MySQL中编写一个带有事件的While循环。不幸的是,在互联网上搜索后,我没有找到这样的东西。但是,我不想使用过程来编写它。

CREATE DEFINER=`root`@`localhost` EVENT `try` 
ON SCHEDULE EVERY 1 DAY STARTS '2023-03-10 09:00:00.000000'
ON COMPLETION NOT PRESERVE ENABLE DO 
BEGIN
    DECLARE counter int DEFAULT 1;
    WHILE counter <= 10 DO
    INSERT INTO admin(admin.admin_username, admin.admin_password, admin.admintype_id) VALUES('aaaa','bbbb',1)
    SET counter = counter + 1;
    END WHILE
END;
mysql 事件 while-loop do-while mysql-event

评论

0赞 RiggsFolly 3/9/2023
那么你的问题是什么?你从这段代码中得到错误吗
0赞 hakankumas 3/9/2023
是的,当然。错误:#1064 - 您的 SQL 语法有错误;检查与您的MySQL服务器版本相对应的手册,以了解在第6行的“WHILE counter <= 10 DO INSERT INTO admin(admin.admin_username, admin.admin_”附近使用的正确语法)
0赞 Solarflare 3/9/2023
尝试在MySQL中设置分隔符
0赞 P.Salmon 3/9/2023
在过程中生成和测试代码比在事件中生成和测试代码更容易,当高兴时,只需复制工作代码即可。
0赞 P.Salmon 3/9/2023
每天您都想为同一admin.admin_username添加十条记录,admin.admin_password,?直到“2023-03-10 09:00:00.000000”在我看来,在所有的日子里只做一次会更容易。

答:

1赞 P.Salmon 3/9/2023 #1

除非这是在事件中使用 while 循环的练习,否则我认为也可以使用 and insert 来实现相同的目的。选择

INSERT INTO admintouser_cocuk(admintouser_cocuk.kullanici_cocuk_id, 
            admintouser_cocuk.admintouser_cocuk_mesaj)
SELECT kullanici_cocuk.kullanici_cocuk_id ,
       'Sevgili evladınızın yeni yaşını kutlar, tüm ailenizle birlikte mutlu bir yaşam dileriz.'
FROM kullanici_cocuk 
wHERE SUBSTRING(kullanici_cocuk.cocuk_dogum_tarihi, 6, 5) = SUBSTRING(CURDATE(), 6, 5)
; 

而且我怀疑使用日期函数而不是减法也会更整洁。

评论

0赞 hakankumas 3/10/2023
这正是我一直在寻找的答案。非常感谢先生。