mm_mysql 1.9.0 → 1.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data.sql +4963 -0
- package/index.js +53 -0
- package/package.json +1 -1
- package/test.js +154 -132
package/index.js
CHANGED
|
@@ -216,6 +216,59 @@ class Mysql {
|
|
|
216
216
|
this.db = function() {
|
|
217
217
|
return new DB($this);
|
|
218
218
|
};
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
*
|
|
222
|
+
* @param {Object} file sql文件
|
|
223
|
+
* @param {Function} func 回调函数
|
|
224
|
+
* @return {Promise} 异步构造器, 当await时返回执行结果
|
|
225
|
+
*/
|
|
226
|
+
this.load = async function(file, func) {
|
|
227
|
+
var count = 0;
|
|
228
|
+
var progress = 0;
|
|
229
|
+
var errors = [];
|
|
230
|
+
var index = 0;
|
|
231
|
+
try {
|
|
232
|
+
var data = file.loadText();
|
|
233
|
+
// 将SQL文件内容分割成单独的语句
|
|
234
|
+
const arr = data.split(';\r\n');
|
|
235
|
+
count = arr.length;
|
|
236
|
+
for (var i = 0; i < arr.length; i++) {
|
|
237
|
+
var sql_str = arr[i].trim();
|
|
238
|
+
var bl;
|
|
239
|
+
if (sql_str !== '') {
|
|
240
|
+
await this.run(sql_str + ";");
|
|
241
|
+
if (this.error) {
|
|
242
|
+
errors.push({
|
|
243
|
+
sql_str: sql_str.slice(0, 512),
|
|
244
|
+
error: this.error
|
|
245
|
+
});
|
|
246
|
+
bl = false;
|
|
247
|
+
// 如果数据库链接失败(密码错误或无法连接),则退出循环
|
|
248
|
+
if (this.error.code == 1045 || this.error.code == 2003) {
|
|
249
|
+
break;
|
|
250
|
+
}
|
|
251
|
+
} else {
|
|
252
|
+
bl = true;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
var p = i / arr.length;
|
|
256
|
+
progress = Math.ceil(p * 100);
|
|
257
|
+
index = i;
|
|
258
|
+
if (func) {
|
|
259
|
+
func(progress, index, bl, this.error, sql_str);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
} catch (err) {
|
|
263
|
+
$.log.error("导入SQL文件失败!", err);
|
|
264
|
+
}
|
|
265
|
+
return {
|
|
266
|
+
index,
|
|
267
|
+
count,
|
|
268
|
+
progress,
|
|
269
|
+
errors
|
|
270
|
+
}
|
|
271
|
+
}
|
|
219
272
|
}
|
|
220
273
|
}
|
|
221
274
|
|
package/package.json
CHANGED
package/test.js
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
const Mysql = require('./index.js').Mysql;
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* 测试导入sql文件
|
|
5
|
+
*/
|
|
6
|
+
async function test() {
|
|
7
|
+
var sql = new Mysql();
|
|
8
|
+
sql.setConfig({
|
|
9
|
+
database: 'test',
|
|
10
|
+
// 连接用户名
|
|
11
|
+
user: "root",
|
|
12
|
+
// 连接密码
|
|
13
|
+
password: "Asd159357",
|
|
14
|
+
multipleStatements: true
|
|
15
|
+
});
|
|
16
|
+
await sql.open();
|
|
17
|
+
var file = "./data.sql".fullname(__dirname);
|
|
18
|
+
var ret = await sql.load(file, function(progress, index, bl, error, sql_str) {
|
|
19
|
+
console.log(progress, index, bl, error, sql_str);
|
|
20
|
+
});
|
|
21
|
+
sql.close();
|
|
22
|
+
console.log("执行结果", ret);
|
|
23
|
+
}
|
|
24
|
+
test();
|
|
3
25
|
|
|
4
26
|
// function test() {
|
|
5
27
|
// var setSql = "`nickname`='hao,1,2,3',`gm`=5,`mc`=2,`group`='2,3'";
|
|
@@ -14,42 +36,42 @@ const Mysql = require('./index.js').Mysql;
|
|
|
14
36
|
// });
|
|
15
37
|
// sql.open();
|
|
16
38
|
|
|
17
|
-
var tpl = {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
};
|
|
39
|
+
// var tpl = {
|
|
40
|
+
// "query": {
|
|
41
|
+
// "state_min": "`state` >= '{0}'",
|
|
42
|
+
// "state_max": "`state` <= '{0}'",
|
|
43
|
+
// "vip_min": "`vip` >= '{0}'",
|
|
44
|
+
// "vip_max": "`vip` <= '{0}'",
|
|
45
|
+
// "gm_min": "`gm` >= '{0}'",
|
|
46
|
+
// "gm_max": "`gm` <= '{0}'",
|
|
47
|
+
// "mc_min": "`mc` >= '{0}'",
|
|
48
|
+
// "mc_max": "`mc` <= '{0}'",
|
|
49
|
+
// "create_time_min": "`create_time` >= '{0}'",
|
|
50
|
+
// "create_time_max": "`create_time` <= '{0}'",
|
|
51
|
+
// "login_time_min": "`login_time` >= '{0}'",
|
|
52
|
+
// "login_time_max": "`login_time` <= '{0}'",
|
|
53
|
+
// "salt": "`salt` like '%{0}%'",
|
|
54
|
+
// "invite_code": "`invite_code` like '%{0}%'",
|
|
55
|
+
// "phone": "`phone` like '%{0}%'",
|
|
56
|
+
// "username": "`username` like '%{0}%'",
|
|
57
|
+
// "nickname": "`nickname` like '%{0}%'",
|
|
58
|
+
// "password": "`password` like '%{0}%'",
|
|
59
|
+
// "email": "`email` like '%{0}%'",
|
|
60
|
+
// "user_group": "`user_group` like '%{0}%'",
|
|
61
|
+
// "user_admin": "`user_admin` like '%{0}%'",
|
|
62
|
+
// "login_ip": "`login_ip` like '%{0}%'",
|
|
63
|
+
// "signature": "`signature` like '%{0}%'",
|
|
64
|
+
// "avatar": "`avatar` like '%{0}%'",
|
|
65
|
+
// "friends": "`friends` like '%{0}%'",
|
|
66
|
+
// "admin_group": "`admin_group` like '%{0}%'"
|
|
67
|
+
// },
|
|
68
|
+
// "update": {
|
|
69
|
+
// "state_add": "`state` = `state` + '{0}'",
|
|
70
|
+
// "vip_add": "`vip` = `vip` + '{0}'",
|
|
71
|
+
// "gm_add": "`gm` = `gm` + '{0}'",
|
|
72
|
+
// "mc_add": "`mc` = `mc` + '{0}'"
|
|
73
|
+
// }
|
|
74
|
+
// };
|
|
53
75
|
|
|
54
76
|
// // 测试模板修改
|
|
55
77
|
// async function test_tpl_set() {
|
|
@@ -76,112 +98,112 @@ var tpl = {
|
|
|
76
98
|
// }
|
|
77
99
|
// test_tpl_set();
|
|
78
100
|
|
|
79
|
-
async function test() {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
101
|
+
// async function test() {
|
|
102
|
+
// console.log('测试开始')
|
|
103
|
+
// var sql = new Mysql();
|
|
104
|
+
// var db = sql.db();
|
|
105
|
+
// // 是否输出语法
|
|
106
|
+
// // sql.config.log = false;
|
|
107
|
+
// // 忽视那些错误的输出,例如[1062],忽视主键重复插入
|
|
108
|
+
// // sql.config.log_ignore = [];
|
|
87
109
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
110
|
+
// sql.setConfig({
|
|
111
|
+
// "user": "root",
|
|
112
|
+
// "password": "Asd159357"
|
|
113
|
+
// });
|
|
114
|
+
// sql.open();
|
|
115
|
+
// // sql.close();
|
|
116
|
+
// // sql.open();
|
|
95
117
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
118
|
+
// // --- 测试事件 ---
|
|
119
|
+
// $.eventer.on("mysql_add_before:user_account", function(json) {
|
|
120
|
+
// console.log("添加前", json);
|
|
121
|
+
// });
|
|
122
|
+
// $.eventer.on("mysql_add_after:user_account", function(json) {
|
|
123
|
+
// console.log("添加后", json);
|
|
124
|
+
// });
|
|
125
|
+
// $.eventer.on("mysql_del_before:user_account", function(json) {
|
|
126
|
+
// console.log("删除前", json);
|
|
127
|
+
// });
|
|
128
|
+
// $.eventer.on("mysql_del_after:user_account", function(json) {
|
|
129
|
+
// console.log("删除后", json);
|
|
130
|
+
// });
|
|
131
|
+
// $.eventer.on("mysql_set_before:user_account", function(json) {
|
|
132
|
+
// console.log("修改前", json);
|
|
133
|
+
// });
|
|
134
|
+
// $.eventer.on("mysql_set_after:user_account", function(json) {
|
|
135
|
+
// console.log("修改后", json);
|
|
136
|
+
// });
|
|
137
|
+
// $.eventer.on("mysql_addOrSet_before:user_account", function(json) {
|
|
138
|
+
// console.log("添加或修改前", json);
|
|
139
|
+
// });
|
|
140
|
+
// $.eventer.on("mysql_addOrSet_after:user_account", function(json) {
|
|
141
|
+
// console.log("添加或修改后", json);
|
|
142
|
+
// });
|
|
143
|
+
// $.eventer.on("mysql_get_before:user_account", function(json) {
|
|
144
|
+
// console.log("查询列表前", json);
|
|
145
|
+
// });
|
|
146
|
+
// $.eventer.on("mysql_get_after:user_account", function(json) {
|
|
147
|
+
// console.log("查询列表后", json);
|
|
148
|
+
// });
|
|
149
|
+
// $.eventer.on("mysql_getObj_before:user_account", function(json) {
|
|
150
|
+
// console.log("查询对象前", json);
|
|
151
|
+
// });
|
|
152
|
+
// $.eventer.on("mysql_getObj_after:user_account", function(json) {
|
|
153
|
+
// console.log("查询对象后", json);
|
|
154
|
+
// });
|
|
133
155
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
156
|
+
// db.table = "user_account";
|
|
157
|
+
// db.key = "user_id,username";
|
|
158
|
+
// var obj = await db.getObj({
|
|
159
|
+
// user_id_has: "1"
|
|
160
|
+
// });
|
|
161
|
+
// obj.vip += 1;
|
|
140
162
|
|
|
141
|
-
|
|
142
|
-
|
|
163
|
+
// await db.add(obj);
|
|
164
|
+
// console.log("尝试重复插入", db.error);
|
|
143
165
|
|
|
144
|
-
|
|
145
|
-
|
|
166
|
+
// // obj.vip -= 1;
|
|
167
|
+
// console.log("语法", db.sql, obj);
|
|
146
168
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
169
|
+
// obj.nickname = '管理员';
|
|
170
|
+
// // obj.vip -= 1;
|
|
171
|
+
// console.log("语法2", db.sql, obj);
|
|
150
172
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
173
|
+
// var list = await db.get({
|
|
174
|
+
// user_id_has: "1,2,a-3,4,5"
|
|
175
|
+
// });
|
|
176
|
+
// console.log("语法", db.sql, list.length);
|
|
155
177
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
178
|
+
// var list = await db.get({
|
|
179
|
+
// user_id: "1"
|
|
180
|
+
// });
|
|
181
|
+
// console.log("查询语法", db.sql, list.length);
|
|
160
182
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
183
|
+
// var list = await db.get({
|
|
184
|
+
// user_id: "1"
|
|
185
|
+
// }, null, null, true);
|
|
186
|
+
// console.log("模糊查询语法", db.sql, list.length);
|
|
165
187
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
}
|
|
184
|
-
test();
|
|
188
|
+
// var obj = await db.getObj({
|
|
189
|
+
// user_id_has: "1,2,a-3,4,5"
|
|
190
|
+
// });
|
|
191
|
+
// console.log("语法", db.sql, obj);
|
|
192
|
+
|
|
193
|
+
// var bl = await db.addOrSet({
|
|
194
|
+
// user_id: obj.user_id
|
|
195
|
+
// }, obj);
|
|
196
|
+
// console.log("语法", db.sql, bl);
|
|
197
|
+
|
|
198
|
+
// var obj = await db.getObj({}, "user_id desc");
|
|
199
|
+
// var obj_new = Object.assign({}, obj);
|
|
200
|
+
// obj_new.user_id += 1;
|
|
201
|
+
// var bl = await db.addOrSet({
|
|
202
|
+
// user_id: obj_new.user_id
|
|
203
|
+
// }, obj_new);
|
|
204
|
+
// console.log("语法", db.sql, bl);
|
|
205
|
+
// }
|
|
206
|
+
// test();
|
|
185
207
|
// setInterval(() => {
|
|
186
208
|
// test();
|
|
187
209
|
// }, 3000)
|