mysql生成随机字符串

set global log_bin_trust_function_creators = 1; 
DROP FUNCTION IF EXISTS rand_string;
DELIMITER $$
CREATE FUNCTION rand_string(n INT)
RETURNS VARCHAR(255)
BEGIN
    DECLARE chars_str varchar(100) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    DECLARE return_str varchar(255) DEFAULT '';
    DECLARE i INT DEFAULT 0;
    WHILE i < n DO
        SET return_str = concat(return_str,substring(chars_str , FLOOR(1 + RAND()*62 ),1));
        SET i = i +1;
    END WHILE;
    RETURN return_str;
END $$
DELIMITER ;
select rand_string(32);

经测试,函数创建后与当前数据库绑定,下面语句可以查看函数相关信息。

SHOW FUNCTION STATUS WHERE Db='database_name';

 

MongoDb 导出查询结果

dump.js

var c = db.user.find({nick_name:{$exists:true,$ne:''}}).limit(100);
while(c.hasNext()) {
    printjson(c.next());
}

mongo 192.168.2.201:41211/dc_user dump.js > feed.json

dc_user库的user表的指定数据会以json形式保存在feed.json中。

注意:printjson输出的是格式化的json文本,便于查看数据,但是不能用mongoimport导入,如果需要导入替换printjson为printjsononeline

数据库ACID特性

ACID就是:原子性(Atomicity )、一致性( Consistency )、隔离性( Isolation)和持久性(Durabilily)。

1. 原子性
原子性属性用于标识事务是否完全地完成,一个事务的任何更新要在系统上完全完成,如果由于某种原因出错,事务不能完成它的全部任务,系统将返回到事务开始前的状态。
让我们再看一下银行转帐的例子。如果在转帐的过程中出现错误,整个事务将会回滚。只有当事务中的所有部分都成功执行了,才将事务写入磁盘并使变化永久化。
为了提供回滚或者撤消未提交的变化的能力,许多数据源采用日志机制。例如,SQL Server使用一个预写事务日志,在将数据应用于(或提交到)实际数据页面前,先写在事务日志上。但是,其他一些数据源不是关系型数据库管理系统(RDBMS),它们管理未提交事务的方式完全不同。只要事务回滚时,数据源可以撤消所有未提交的改变,那么这种技术应该可用于管理事务。

继续阅读