Mysqlday04学习与数据库解决

  mysql数据库出现中文乱码问题的解决方法:linux-centos安装数据库后,发现存库时中文全都乱码。

  解决方法:

  学习Mysqlday04

  1.触发器

  触发器是数据库系统中的一种机制,可以根据某一张表的增、删、改操作时作出一些特定的功能处理。

  触发器创建在表的基础上,类型有三种,增、删、改,也就是说,一个表最多只能创建三个触发器。

  同时,触发器是可以联动的。比如说销售记录插入一条销售信息,则销售记录表的insert触发器触发,针对商品表的库存进行修改。如果商品表创建了update触发器,则商品表的update触发器也会紧跟着触发。

  语法 :create trigger t_xiaoshou after insert/update/delete on 表名

  for each row

  begin

  //业务处理

  //业务处理

  end;

  在触发中new表示新添加的数据行 old 表示删除的数据行。

  Insert 时只有new 数据行

  Delete时只有 old 数据行

  Update时 两个数据行都有,更改数据时,先把这一行数据删除,数据行存在old里面,然后再插入修改后的数据行,则插入的数据行保存在new 里面。

  案例一:insert触发器

  /*在销售表中添加insert触发器,触发时修改商品表的库存*/

  DELIMITER$$

  createtrigger t_orderList AFTER insert on orderList

  for each row

  begin

  /*取商品编号 及 数量 然后根据商品编号把商品表的库存减少,减少数量*/

  update goods set kuchun = kuchun-new.numwhere goods.id = new.gid;

  end$$;

  案例二:delete触发器

  DELIMITER$$

  createtrigger t_student AFTER delete on student

  for each row

  begin

  /*取删除的学员信息,插入到毕业学员信息表中 old行保存的是删除的学员信息*/

  insert into biyeiStudentvalues(old.studentno,old.name,old.sex,old.phone,old.birthday,

  old.address,old.email);

  end$$;

  案例三:update 触发器 当更改了库存后,触发,重新计算商品的总价值。

  delimiter $$

  createtrigger t_goods before update on goods

  for each row

  begin

  /*判断是哪一列进行了修改*/

  if old.kuchun != new.kuchun then

  /*因为是同一个表,所以只要设置新行里面值就可以。*/

  set new.totalPrice =new.kuchun*new.inPrice;

  end if;

  end;

  $$;

  2.存储过程

  存储过程类似于Java中的方法,把一些复杂的业务进行封装,并进行了预编译,以后可以调用过程名,就可以执行过程中的业务代码,就像Java中的方法调用。过程可以给参数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
修改MySQL的配置文件my.cnf,一般在/etc/my.cnf
在[mysqld]里添加:
default -character-set=utf8
在[client]里添加:
default -character-set=utf8
保存退出
重启mysql:
service mysqld restart
前提是已经加入服务,否则可以尝试:
/etc/rc.d/init.d/mysqld restart
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值