当前位置: 首页 > news >正文

有关网站开发的文章做微商网站的软文

有关网站开发的文章,做微商网站的软文,安卓系统应用开发,深圳推广软件十年乐云seo为什么80%的码农都做不了架构师#xff1f; 由于项目需要创建定时器#xff08;evevt#xff09;#xff0c;所以就百度了一下#xff0c;发现基本都是来源于一个模板#xff0c;有些功能还不全#xff0c;现在自己总结一下。 注#xff1a;mysql版本是… 为什么80%的码农都做不了架构师        由于项目需要创建定时器evevt所以就百度了一下发现基本都是来源于一个模板有些功能还不全现在自己总结一下。 注mysql版本是从5.1开始才支持event的。如果你的版本低于5.1就先升级版本吧。 查看版本的方法有很多这里只给大家提供一个    select version() 1.查看是否开启evevt与开启evevt。 1.1、MySQL evevt功能默认是关闭的,可以使用下面的语句来看evevt的状态如果是OFF或者0表示是关闭的。               show VARIABLES LIKE %sche%; 1.2、开启evevt功能             SET GLOBAL event_scheduler 1; 2.创建定时器的过程 2.1、创建测试表test drop table if exists test; create table test ( id int(11) not null auto_increment primary key, time datetime not null ) engineinnodb default charsetutf8; 2.2、创建evevt要调用的存储过程test_proce delimiter // drop procedure if exists test_proce// create procedure test_proce() begin insert into test(time) values(now()); end// delimiter ; 2.3、开启evevt要使定时起作用,MySQL的常量GLOBAL event_scheduler必须为on或者是1 执行show variables like event_scheduler;查看evevt是否开启 若没开启执行set global event_scheduleron; 2.4、创建事件test_event其作用每隔一秒自动调用test_proce()存储过程 drop event if exists test_event; create event test_event on schedule every 1 second on completion preserve disable do call test_proce(); 2.5、开启事件test_event alter event test_event on completion preserve enable; 2.6、关闭事件test_event alter event test_event on completion preserve disable; 2.7、查看表test select * from test;   3.查看自己创建的event 如果要查看更加详细的信息你需要root用户的授权如果是你自己的数据库你可以用下面语句查看 select * from  mysql.event; 下面的我的evevt的查看结果 4.event的时间设置 设置event很简单但是麻烦的是如何设置执行的时间网上找了一些自己总结了一下。 先看语句如下面这个      CREATE EVENT test_event ON SCHEDULE EVERY 1 DAY STARTS 2012-09-24 00:00:00      ON COMPLETION PRESERVE ENABLE DO CALL test_procedure(); EVERY 后面的是时间间隔可以选 1 second3 minute5 hour9 day1 month1 quarter季度1 year  从2013年1月13号0点开始每天运行一次 ON SCHEDULE EVERY 1 DAY STARTS 2013-01-13 00:00:00 从现在开始每隔九天定时执行 ON SCHEDULE EVERY 9 DAY STARTS NOW()  每个月的一号凌晨1 点执行 on schedule every 1 month starts date_add(date_add(date_sub(curdate(),interval day(curdate())-1 day),interval 1 month),interval 1 hour); 每个季度一号的凌晨1点执行 on schedule every 1 quarter starts date_add(date_add(date(concat(year(curdate()),-,elt(quarter(curdate()),1,4,7,10),-,1)),interval 1 quarter),interval 1 hour); 每年1月1号凌晨1点执行 on schedule every 1 quarter starts date_add(date_add(date(concat(year(curdate()),-,elt(quarter(curdate()),1,4,7,10),-,1)),interval 1 quarter),interval 1 hour);   其他的 就大家自由组合了。。     附录   1使用权限 单独使用event调用SQL语句时查看和创建需要用户具有event权限调用该SQL语句时需要用户具有执行该SQL的权限。Event权限的设置保存在mysql.user表和mysql.db表的Event_priv字段中。 当event和procedure配合使用的时候查看和创建存储过程需要用户具有create routine权限调用存储过程执行时需要使用excute权限存储过程调用具体的SQL语句时需要用户具有执行该SQL的权限。   查看EVENT命令有如下几种   1查询mysql.event表 2通过SHOW EVENTS命令 3通过SHOW FULL EVENTS命令 4通过查询information_schema.events表 5SHOW CREATE EVENT。 总之event的使用频率较低建议使用root用户进行创建和维护。   2CREATE EVENT 的语法 CREATE EVENT [IF NOT EXISTS] ------------------------------------------------*标注1 event_name -----------------------------------------------------*标注2 ON SCHEDULE schedule -------------------------------------------*标注3  [ON COMPLETION [NOT] PRESERVE] ---------------------------------*标注4 [ENABLE | DISABLE] ---------------------------------------------*标注5  [COMMENT comment] --------------------------------------------*标注6  DO sql_statement ;----------------------------------------------*标注7   说明 标注1[IF NOT EXISTS]        使用IF NOT EXISTS只有在同名event不存在时才创建否则忽略。建议不使用以保证event创建成功。   标注2event_name       名称最大长度可以是64个字节。名字必须是当前Dateabase中唯一的同一个数据库不能有同名的event。       使用event常见的工作是创建表、插入数据、删除数据、清空表、删除表。       为了避免命名规范带来的不便最好让事件名称具有描述整个事件的能力。建议命名规则如下为       动作名称_INTO/FROM_  表名_TIME例如                                                1.每月创建清空/删除fans表                                                                           create(truncate/drop)_table_fans_month                                                2.每天从fans表插入删除数据                                                                           insert(delete)_into(from)_fans_day   标注3ON SCHEDULE        ON SCHEDULE 计划任务有两种设定计划任务的方式        1. AT 时间戳用来完成单次的计划任务。        2. EVERY 时间单位的数量时间单位[STARTS 时间戳] [ENDS时间戳]用来完成重复的计划任务。          在两种计划任务中时间戳可以是任意的TIMESTAMP 和DATETIME 数据类型时间戳需要大于当前时间。        在重复的计划任务中时间单位的数量可以是任意非空Not Null的整数式.        时间单位是关键词YEARMONTHDAYHOURMINUTE 或者SECOND。        提示: 其他的时间单位也是合法的如          QUARTER, WEEK,YEAR_MONTH,DAY_HOUR,DAY_MINUTE,DAY_SECOND,HOUR_MINUTE,HOUR_SECOND, MINUTE_SECOND                   不建议使用上一行这些不标准的时间单位。   标注4 [ON COMPLETION [NOT] PRESERVE]         ON COMPLETION参数表示当这个事件不会再发生的时候即当单次计划任务执行完毕后或当重复性的计划任务执行到了ENDS阶段。而PRESERVE的作用是使事件在执行完毕后不会被Drop掉建议使用该参数以便于查看EVENT具体信息。   标注5[ENABLE | DISABLE]        参数Enable和Disable表示设定事件的状态。Enable表示系统将执行这个事件。Disable表示系统不执行该事件。          可以用如下命令关闭或开启事件                                      ALTER EVENT event_name  ENABLE/DISABLE   标注6[COMMENT comment]         注释会出现在元数据中它存储在information_schema表的COMMENT列最大长度为64个字节。         comment表示将注释内容放在单引号之间建议使用注释以表达更全面的信息。   标注7 DO sql_statement         DO sql_statement字段表示该event需要执行的SQL语句或存储过程。         这里的SQL语句可以是复合语句例如                                            BEGIN                                            CREATE TABLE test1;//创建表需要测试一下                                            DROP TABLE test2;//删除表                                            CALL proc_test1();//调用存储过程                                            END 使用BEGIN和END标识符将复合SQL语句按照执行顺序放在之间。当然SQL语句是有限制的对它的限制跟函数Function和触发器Trigger 中对SQL语句的限制是一样的如果你在函数Function 和触发器Trigger 中不能使用某些SQL同样的在EVENT中也不能使用。明确的来说有下面几个                           LOCK TABLES                           UNLOCK TABLES                           CREATE EVEN                           ALTER EVENT                           LOAD DATA   3执行逻辑 For (已建立事件each event that has been created) If (事件的状态非DISABLE) And (当前时间在ENDS时间之前) And (当前时间在STARTS时间之后) And (在上次执行后经过的时间) And (没有被执行) Then: 建立一个新的线程 传递事件的SQL语句给新的线程 (该线程在执行完毕后会自动关闭)   4修改事件   使用ALTER EVENT 来修改事件具体的ALTER语法如下与创建事件的语法类似 ALTER EVENT   event_name ON SCHEDULE schedule [RENAME TO new_event_name] [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE] [COMMENT comment] DO sql_statement;   5删除事件   EVENT使用DROP EVENT语句来删除已经创建的事件语法如下 DROP EVENT  [IF EXISTS]  event_name;   但当一个事件正在运行中时删除该事件不会导致事件停止事件会执行到完毕为止。使用DROP USER和DROP DATABASE 语句同时会将包含其中的事件删除。   show procedure status;   MYSQL中存储过程的创建调用及语法 (2011-12-01 16:19:46) 转载▼ MySQL 存储过程是从 MySQL 5.0 开始增加的新功能。存储过程的优点有一箩筐。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能如果没有存储过程在外部程序访问数据库时例如 PHP要组织很多 SQL 语句。特别是业务逻辑复杂的时候一大堆的 SQL 和条件夹杂在 PHP 代码中让人不寒而栗。现在有了 MySQL 存储过程业务逻辑可以封装存储过程中这样不仅容易维护而且执行效率也高。   第一部分创建一个简单的无参的存储过程 1 用mysql客户端登入 2 选择数据库 mysqluse test 3 查询当前数据库有哪些存储过程 mysqlshow procedure status where Dbtest 4 创建一个简单的存储过程 mysqlcreate procedure hi() select hello; 5 存储过程创建完毕,看怎么调用它 mysqlcall hi();   显示结果   mysql call hi(); ------- | hello | ------- | hello | ------- 1 row in set (0.00 sec)Query OK, 0 rows affected (0.01 sec) 6 一个简单的储存过程就成功了,这只是一个演示,存储过程可以一次执行多个sql语句第二部分创建一个有两个参数的存储过程一、MySQL 创建存储过程 “pr_add” 是个简单的 MySQL 存储过程这个存储过程有两个 int 类型的输入参数 “a”、“b”返回这两个参数的和。 drop procedure if exists pr_add;-- 计算两个数之和create procedure pr_add(a int,b int) begindeclare c int;if a is null thenset a 0;end if;if b is null thenset b 0;end if;set c a b;select c as sum;end; 二、调用 MySQL 存储过程 call pr_add(10, 20); 执行 MySQL 存储过程存储过程参数为 MySQL 用户变量。 set a 10;set b 20;call pr_add(a, b);三、MySQL 存储过程特点 创建 MySQL 存储过程的简单语法为 create procedure 存储过程名字()([in|out|inout] 参数 datatype )beginMySQL 语句;end;MySQL 存储过程参数如果不显式指定“in”、“out”、“inout”则默认为“in”。习惯上对于是“in” 的参数我们都不会显式指定。 1. MySQL 存储过程名字后面的“()”是必须的即使没有一个参数也需要“()” 2. MySQL 存储过程参数不能在参数名称前加“”如“a int”。下面的创建存储过程语法在 MySQL 中是错误的在 SQL Server 中是正确的。 MySQL 存储过程中的变量不需要在变量名字前加“”虽然 MySQL 客户端用户变量要加个“”。 create procedure pr_add(a int,  -- 错误b int    -- 正确)3. MySQL 存储过程的参数不能指定默认值。 4. MySQL 存储过程不需要在 procedure body 前面加 “as”。而 SQL Server 存储过程必须加 “as” 关键字。 create procedure pr_add(a int,b int)as              -- 错误MySQL 不需要 “as”beginmysql statement ...;end;5. 如果 MySQL 存储过程中包含多条 MySQL 语句则需要 begin end 关键字。 create procedure pr_add(a int,b int)beginmysql statement 1 ...;mysql statement 2 ...;end;6. MySQL 存储过程中的每条语句的末尾都要加上分号 “;” ...declare c int;if a is null thenset a 0;end if;...end;7. MySQL 存储过程中的注释。 declare c int;     -- 这是单行 MySQL 注释 注意 -- 后至少要有一个空格if a is null then  # 这也是个单行 MySQL 注释set a 0;end if;...end;8. 不能在 MySQL 存储过程中使用 “return” 关键字。 set c a b;select c as sum;end;9. 调用 MySQL 存储过程时候需要在过程名字后面加“()”即使没有一个参数也需要“()” call pr_no_param(); 10. 因为 MySQL 存储过程参数没有默认值所以在调用 MySQL 存储过程时候不能省略参数。可以用 null 来替代。 call pr_add(10, null); 转载于:https://my.oschina.net/lwaif/blog/821853
http://www.zqtcl.cn/news/960810/

相关文章:

  • 合肥网站建设企业秒玩小游戏入口
  • 个人做网站开发个人网站备案取名
  • 替代wordpress 搜索seo优化排名易下拉程序
  • asp.net 网站 方案小程序开发是前端还是后端
  • 网站开发 介绍 回扣建设项目验收在哪个网站公示
  • 建立网站免费如何做物流网站
  • 重庆网站设计费用wordpress自动翻页
  • 燕郊做网站的公司seo快速优化
  • 建了网站却搜不出来设计网站室内
  • 网站运营维护新闻摘抄大全
  • 怎么优化网站的单个关键词排名wordpress 安装百度编辑器
  • led网站建设方案模板做炒作的网站
  • 注册网站免费注册qq邮箱seo服务销售招聘
  • 翻译做网站php做网站好学吗
  • 网站模板 seo响应式网站内容布局
  • 石家庄住房和城乡建设部网站企业自助建站系统怎么建
  • 建设企业网站都需要啥网站开发 自我评价
  • 购物网站主页怎么做网站建设的优势何江
  • 宿州网站建设多少钱广西壮族自治区医保网上服务大厅
  • 宾馆酒店 网站模板wordpress手动获取相关文章
  • 荆州网站开发在线推广网站的方法
  • 可以查企业的网站网站建设的外国文献
  • 什么网站可以做相册视频企业网站开发时间
  • 德州市建设小学网站精品网站建设费用
  • 云主机可以做几个网站wordpress 自动发布
  • python网站开发简单吗小程序开发定制北京公司
  • 做网站什么都不懂 怎么做wordpress10款音乐插件
  • 何使网站的页面结构更为合理建用vs2013做网站案例
  • 帮人做空间网站怎么赚钱静态网站怎么维护
  • 3d网站带后台下载深圳建站公司设计深业集团