【问题标题】:Running an INSERT statement automatically using Command Line使用命令行自动运行 INSERT 语句
【发布时间】:2014-08-19 11:50:36
【问题描述】:

我有一个从 MySQL Workbench 运行的语句,它按我想要的方式运行。

INSERT INTO queuelist(songID)
select ID from songlist where filename LIKE CONCAT('%', substring(curdate(), 6,5) ,'%') order by filename

我现在想使用 Windows 调度程序和批处理文件自动执行该过程。我对这个过程相当陌生,对命令行的工作方式不是很熟悉。我是这样开始的:

mysql -u username -pMyPassword -D MyDatabase < code.sql

其中 code.sql 包含我在上面发布的查询——当我运行它时,我得到的结果与我在 Workbench 中运行它时完全不同。我需要用不同的格式吗?

谢谢 查克

【问题讨论】:

    标签: mysql sql batch-file command-line


    【解决方案1】:

    为什么不将插入语句放入 MySQL event?然后数据库引擎会自动为你运行它。

    delimiter //
    CREATE EVENT IF NOT EXISTS your_event
    ON SCHEDULE EVERY 1 DAY 
    STARTS  '2014-08-19 12:00:00'
    ON COMPLETION PRESERVE ENABLE
    DO
        INSERT INTO queuelist(songID)
        select ID 
        from songlist
        where filename LIKE CONCAT('%', substring(curdate(), 6,5) ,'%') 
        order by filename
    //
    

    您需要在上面的代码中调整它应该运行的时间

    【讨论】:

    • 我相信这会起作用,但请原谅我,我需要每天执行此操作,还是第一次执行此操作后,它将永久保存在我的服务器中?
    • 执行一次。在定义中,您可以指定运行频率,例如EVERY 1 DAY。你可以定义它的开始。使用2014-08-19 12:00:00 将从今天开始在12 执行,并每天在12 继续执行
    • 第一件事——错误 1044 拒绝用户 root 访问 ..我相信这是服务器中唯一拥有所有权限的用户 ..我从来没有开箱即用过它 ..除此之外设置密码
    • 这很奇怪..仍然能够在工作台中运行其他查询而没有访问错误..只是不是那个
    • 尝试在 MySQL Workbench 中重新连接。这就是你使用的工具,对吧?
    猜你喜欢
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 2018-05-14
    • 2021-04-10
    • 1970-01-01
    • 2013-12-18
    相关资源
    最近更新 更多