Mysql Create命令小结

函数
CREATE FUNCTION function_name(param1 varchar(255)) RETURNS varchar(100) CHARSET utf8
BEGIN
    ....
    RETURN ...;
END

存储过程
CREATE PROCEDURE procedure_name(param1 date)
BEGIN
    DECLARE EXIT HANDLER FOR SQLEXCEPTION ...;
    DECLARE CONTINUE HANDLER FOR SQLWARNING ...;
    ....
END
存储过程-游标
CREATE PROCEDURE procedure_name()
BEGIN
    DECLARE done INT DEFAULT FALSE;
    DECLARE cur CURSOR FOR SELECT ...;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
    OPEN cur;
        read_loop : LOOP
            FETCH cur INTO param1;
            IF done THEN
                LEAVE read_loop;
            END IF;
            ...
        END LOOP;
    CLOSE cur;
END
存储过程-事务
CREATE PROCEDURE procedure_name()
BEGIN
    DECLARE error_flag INTEGER DEFAULT 0; 
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET error_flag = 1;

    START TRANSACTION;

    ...

    IF error_flag = 1 THEN
        ROLLBACK;
    ELSE
        COMMIT;
    END IF;
END
存储过程-动态语句
CREATE PROCEDURE procedure_name()
BEGIN
    DECLARE sentence text;
    SET sentence = 'SELECT ...';
    SET @gsql = sentence; 
    PREPARE stmt FROM @gsql; 
    EXECUTE stmt;
END

事件
CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF NOT EXISTS] event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT comment]
DO ...
  1. ON COMPLETION [NOT] PRESERVE: 定义事件是一次执行还是永久执行,默认为一次执行,即NOT PRESERVE。
  2. ENABLE | DISABLE | DISABLE ON SLAVE: 定义事件创建以后是开启还是关闭,以及在从上关闭。如果是从服务器自动同步主上的创建事件的语句的话,会自动加上DISABLE ON SLAVE。

视图
CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW [db_name.]view_name [(column_list)] 
AS 
select_statement [WITH [CASCADED | LOCAL] CHECK OPTION]
  1. ALGORITHM:
    1. UNDEFINED:MySQL将选择所要使用的算法。如果可能,它倾向于MERGE而不是TEMPTABLE,这是因为MERGE通常更有效,而且如果使用了临时表,视图是不可更新;
    2. Merge:合并的执行方式,每当执行的时候,先将我们视图的sql语句与外部查询视图的sql语句,混合在一起,最终执行;
    3. Temptable:临时表模式,每当查询的时候,将视图所使用的select语句生成一个结果的临时表,再在当前的临时表内进行查询;
  2. with check option:
    1. 当视图中存在where条件是起作用;
    2. 对于update和insert,要保证操作后,数据要被视图查询出来,否则操作失败;
    3. LOCAL和CASCADED关键字决定了检查测试的范围。LOCAL关键字对CHECK OPTION进行了限制,使其仅作用在定义的视图上,CASCADED会对将进行评估的基表进行检查。如果未给定任一关键字,默认值为CASCADED;

参考文章:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值