mysql存储过程

存储过程

过程内的变量定义:
DECLARE  p_count1 INTEGER(11) DEFAULT 0;
SET @p_count2=0;
DECLARE:局部变量,作用范围是声明该变量的BEGIN...END块
SET:会话内全局变量,作用范围是当前会话,可以在SQL、PROC、FUNC之间传递,使用不当可能会出BUG:
比如2个过程都使用这个全局变量,则可能会出现变量被串用,因此在使用前建议初始化,SET @p_count2=0;
 
锁(SELECT … FOR UPDATE)
行级锁
  明确指定主键且有数据,无数据时没有锁
  select n_money,n_token into … from acc_balance where n_roleid=1 for update
表级锁
  没有指定主键或者主键不明确
  select * from acc_balance where n_roleid<>1 for update;

数据库操作

登录数据库
mysql --default-character-set=utf8 -uroot -p'123' -h192.168.0.14 -P3300 king_db
 
--default-character-set:设定client的字符编码
-u:登录用户
-p:密码
-h:指定HOST
-P:指定端口
 
导入数据库脚本
mysql --default-character-set=utf8 -uroot -p'123' -h192.168.0.14 -P3300 king_db<目录/脚本
mysql>source 目录/脚本
 
导出数据库脚本(mysqldump)

常用参数名

描述
--no-create-db,-n 没有CREATE DATABASE...
--no-data,-d 只导结构,不导数据
--database,-B 有CREATE TABLE…
--no-create-info,-t 没有CREATE TABLE…
--tables 指定需要导出的表,覆盖--database或-B选
--ignore-table 指定不需要导出的表 每次只能指定一个表,多个表需要重复多次指定 每个表必须同时指定数据库和表名db.tablename
 
示例
-- 导出全库结构
    mysqldump -uroot -p123 -h192.168.0.26 -P3301 -B --opt -R -d playboy_cn_cn_test > struct.sql
-- 导入结构
    mysql --default-character-set=utf8 -uroot -p123 -h127.0.0.1 -P3306 < struct.sql
-- 导出数据
    mysqldump -uroot -p123 -h192.168.0.26 -P3301 --opt -t playboy_cn_cn_test > data.sql
-- 导入数据
    mysql --default-character-set=utf8 -uroot -p123 -h127.0.0.1 -P3306 playboy_cn_cn_test < data.sql