zoukankan      html  css  js  c++  java
  • msql数据库触发器和连接mysql常用函数

    触发器
    delimiter $$(设置$$为语句结束符)
    例:
    delimiter $$
    create trigger jiaobanfei after update on user1     
    for each row
    begin
    update user2 set age=age+(old.num-new.num);
    update user2 set num=num+1;
    end
    $$
    delimiter;


    old.age-new.age

    删除;drop trigger jiaobanfei;

    update user1 set num=num-4 where id=1;

    注意;1、触发器不能同名
         2、目前mysql只支持一类事件设置一个触发器

    在触发器内,获得触发改触发程序时的数据:
    利用触发程序内的new和old来完成

    old:旧的数据,在时间发生之前的数据
    new:监听表上,事件发生之后的数据

    事件是insert,不能使用old
    事件是delete,不能使用new

    如果一个触发程序,由多条sql语句组成:
    应该;1、语句组成语句块(begin,end)来标识语句块
       2、语句快的语句需要独立的语句结束符,分号

       命令行:由于触发器程序内使用分号作为语句结束符,那么当命令行客户
       端碰到分号时,就应该理解成触发器程序内子语句结束,而不是整个创建触发器的语句结束

       应该通过修改命令行的语句结束符达到目的,
       Delimiter语句可以完成设置语句结束符




    测试  :insert into on duplicate key update (如果插入的数据时,主键重复,则为修改操作)
            replalce


    php操作mysql的客户端有三个
    msyql,mysqli,pdo

    测试函数是否可用
    var_dump(function_exists('mysql_connect'));

    常见的:show,desc,select 返回结果集

             insert,update ,delete返回布尔值



    ASSOC:关联数组
    row;索引数组
    array:混合数组

    fetch只能获得一条,但是可以自动移动,结果集的记录指针,配合循环结构,完成所有数据的操作




    mysql 错误:
    获得错误信息;
    mysql_error();错误信息
    mysql_errno();错误编号

    1、获得结果集内的数据量
    mysql_num_rows(结果集)
      查

    2、操作后,受影响的行数
    mysql_affected_rows();
    适用于 增删改

    3、获得最新的自动增长的字段的值,通常是id主键
    mysql_insert_id();

    4、如果资源使用完毕,应该释放资源
    mysql_free_result(结果集);


    需要释放的资源;复合类型的数据(数组,对象),资源
    unset一下变量就行

  • 相关阅读:
    Oracle数据库的非归档模式迁移到归档模式
    对Dataguard的三种模式的理解
    RMAN中建立Catalog 用数据库的例子
    Oracle中实现dblink的作法
    expdp 简单例子
    Oracle单节点_Grid_Infrastructure_DB_安装过程图解(三/三)
    Oracle单节点_Grid_Infrastructure_DB_安装过程图解(一/三)
    Oracle单节点_Grid_Infrastructure_DB_安装过程图解(二/三)
    Oracle 安装过程中 File not found "WFMLRSVCApp.ear" 的原因
    基于Django的在线考试系统
  • 原文地址:https://www.cnblogs.com/hhfhmf/p/4830987.html
Copyright © 2011-2022 走看看