关于Dsicuz 的注册用户问题
最近有个项目需要把用户注册整合到Discuz注册部分。查了下网上的资料,Discuz的密码处理方式是用MD5(MD5('password')||随机码) (oracle的语法) 的方式保存,操作的是uc_members这个表。知道了密码方式,处理就方便了,在这个表或者另一个项目的用户表上加触发器就ok了,至于随机码,随便写一个就行了。然后用这个用户名和密码登录,会提示先激活,按提示完成后,就能正常使用了。顺便说一下使用的Discuz版本是6.1.0集成UCENTER版[@more@]
mysql5中使用过程实现行转列
简单到网上搜了一下,没有发现mysql有类似oracle 的decode函数实现行转列,有不少用过程实现动态行转列,试了一下,不适合我用,参考mysql5的帮助,写个个过程,记录备忘。其中用到了游标,关于游标的使用文档里给的例子也不错,反正我就只会那么用。。。DELIMITER $$DROP PROCEDURE IF EXISTS `hrb_yd`.`proc_hrb_yd_stat`$$CREATE DEFINER=`root`@`192.168.96.1` PROCEDURE `proc_hrb_yd_stat`(IN $G_id INTEGER(10))BEGINdeclare v_name VARCHAR(255);declare v INT DEFAULT 0;declare v1 INT DEFAULT 0;declare v2 INT DEFAULT
mysql 5 数据库导出与字符集的问题。
由于导出库在安装在windows下,使用utf8字符集,而导入库安装在linux下,默认是拉丁文即8859字符集。故数据导出后再导入,从客户端显示数据是没有问题的,但当输入汉字时,保存即为乱码。即使新建的导出数据库的字符集是utf8。我现在能做的解决办法就是重新装库,用源码make install,编译的时候要指定字符集为utf-8,具体步骤查看安装文档即可。然后在导入,就没有问题了。有些小看Mysql的字符集了。[@more@]
mysql的启动,以及修改侦听端口。
# mysqld_safe --port=端口号 --user=mysql &[@more@]y
再说mysql中的变量赋值
之前说过关于Mysql的赋值问题,见文档: 20.2.9.1. DECLARE局部变量DECLARE var_name[,...] type [DEFAULT value] 这个语句被用来声明局部变量。要给变量提供一个默认值,请包含一个DEFAULT子句。值可以被指定为一个表达式,不需要为一个常数。如果没有DEFAULT子句,初始值为NULL。 局部变量的作用范围在它被声明的BEGIN ... END块内。它可以被用在嵌套的块中,除了那些用相同名字声明变量的块。但,没想到多个变量的赋值是要写多个declare的,这点很不理解,也与oracle不一样。。。如:mysql: declare v_1 int default 0;declar
mysql中的(字符)转换函数以及排序问题。
参照手册得知,可以用cast函数完成以字符形式存储的数字到数字转换,以用于排序,否则直接排序会不符合需要。CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name) CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。 这个类型 可以是以下值其中的 一个: BINARY[(N)] CHAR[(N)] DATE DATETIME DECIMAL SIGNED [INTEGER] TIME UNSIGNED [INTEGER] 使用cast(待转换字段 as UNSIGNED),生成为 UNSIGNED/SIGNED 数字。这个函数有点象oracle 中 to_char,to_number,
mysql 触发器/过程中的变量!!
没想到mysql中的变量要在BEGIN ... END中,一直以为在begin之前,,,郁闷。手册说: 20.2.9.1. DECLARE局部变量DECLARE var_name[,...] type [DEFAULT value] 这个语句被用来声明局部变量。要给变量提供一个默认值,请包含一个DEFAULT子句。值可以被指定为一个表达式,不需要为一个常数。如果没有DEFAULT子句,初始值为NULL。 局部变量的作用范围在它被声明的BEGIN ... END块内。它可以被用在嵌套的块中,除了那些用相同名字声明变量的块。 [@more@]
mysqldump导出数据
mysqldump -u 用户名(有导出权限) -h 主机地址 -p 数据库名 >目的地址如:mysqldump.exe -u root -h 192.168.0.1 -p web_db>c:web_db[@more@]
mysql中的外键
Foreign keys definitions are subject to the following conditions: Both tables must be InnoDB tables and they must not be TEMPORARY tables. Corresponding columns in the foreign key and the referenced key must have similar internal data types inside InnoDB so that they can be compared without a type conversion. The size and sign of integer types must be the same. The length of string types need not be the same. For non-binary (character) string columns, the character set and collation must be the