Commit 918042f1 authored by Scott Sun's avatar Scott Sun

scott

parent fd621d55
node_modules
.vscode
## postgresql
* 下载链接
* http://www.enterprisedb.com/products-services-training/pgdownload#windows
* pwd:159482673 port:5432 locale:C
* 将 bin 设置环境变量
* psql –h localhost –p 5432 –U postgres 默认连接
## 创建用户
* createuser.exe -s -P scott -U postgres
* psql –h localhost –p 5432 –U scott
* 修改密码 alter user scott with password '159482673';
## 基本命令
```
\l 列举数据库
```
\ No newline at end of file
This diff is collapsed.
var fs = require('fs');
var parser = require('topsin.parser');
var db = require('topsin.database');
// 获取表的数据
function getCsvArr(path){
var file = fs.openFile(path); // 获取文件流
file.setCodec('UTF-8'); // 设置编码
var csvstr = file.readAll(); // 获取csv字符串
var csvdata = parser.parseCsvStr(csvstr); // 转变为数组
// csvdata[0] = csvdata[0].map(function(v){ // 第一行字段矫正
// return v.split('\n').join('');
// });
csvdata.shift();
return csvdata;
}
// 获取的表的数据
var res = getCsvArr('./confirmation-201912270900(1).csv');
// 创建数据库连接
db.addConnection({
database_type:'pg',
database_host:'139.196.104.13:5433',
database_name:'PMO_TRAINING',
database_user:'toplinker',
database_pwd:'TopLinker0510'
}, "Scott_PMO_TRAINING");
// 封装数据库的操作
function Query(db,table,connectName){
this.db = db;
this.table = table;
this.normal = function(callback){ // 自定义配置
return this.db.query(connectName,callback);
}
this.getAllData = function(){ // 获取所有数据
var that = this
return this.db.query(connectName,function(q){
return q.selectArrayMap({
table:that.table,
field: '*',
field_format:{"tags":'array', attr_data:'json'}
});
})
}
this.getKeys = function(){ // 查询所有字段
return this.normal(function(q){
return q.getFieldList('sec_production_order_confirmation_2')
});
}
}
// 生成操作数据库实例
var query = new Query(db,'sec_production_order_confirmation_2','Scott_PMO_TRAINING');
// 获取数据库的字段
var keys = query.getKeys();
// 查看数据list
var list = query.getAllData()
// 是否需要扩展列
function getkeyCount(){
var res = 0;
for(var keycount in list[0]){
if(list[0][keycount] !== undefined){
res++
}
}
return res-1
}
if(getkeyCount() !== res[0].length){
console.log("需要更新前面数据")
// 要更新的前面数量
var updateRows = res.length - list.length
var updatelen = getkeyCount() - res[0].length
var updateObj = {}
for(var i = 1;i<=updateRows;i++){
updatelen.map(function(v){
updateObj[keys[getkeyCount()+1+v]] = res[i-1][res[0].length+v]
})
query.normal(function(q){
q.updateRow({
table:'sec_production_order_confirmation_2',
data:updateObj,
where:{id: i},
update_policy:{tags:'array_append', attr_data:'json_merge'}
})
})
}
}
// 是否需要插入多数据
if (list.length !== res.length){
// 执行插入
var insertMany = res.splice(list.length)
insertMany = insertMany.map(function(v){
var obj = {}
v.map(function(v2, i2){
obj[keys[i2+1]] = v2
})
return obj
})
query.normal(function(q){
q.batchInsert(
'sec_production_order_confirmation_2',
keys.splice(1,res[0].length),
insertMany
);
})
}
// console.log(query.normal(function(q){
// return q.selectMap({
// table:'sec_production_order_confirmation_2',
// field: '*',
// field_format:{tags:'array', attr_data:'json'},
// limit: 1,
// order:'id DESC'
// });
// }))
// console.log(res[res.length-1])
var dbs = require('topsin.database')
// 添加数据库连接
dbs.addConnection({
database_type:'pg',
database_host:'127.0.0.1:5432',
database_name:'test',
database_user:'postgres',
database_pwd:'159482673'
}, "scott_db_one")
// 获取操作对象
// var query = dbs.query('scott_db_one')
// 回调
var res = dbs.query("scott_db_one", function(query) {
return query.selectMap({
table:'scott_dbone_test',
field: '*',
field_format:{"tags":'array', attr_data:'json'}
});
});
console.log(res)
\ No newline at end of file
......@@ -31,3 +31,9 @@
* topsin
1. topsin.crypto加密
## 2019-12-27
* postgreSql
* 需求:读取excel数据 存入数据库
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment