shell 数据批量插入

http://www.maiziedu.com/wiki/linux/data/

shell操作mysql数据库,完成数据的批量插入

shell 操作mysql数据库完成数据的批量插入:

1.编写脚本

脚本文件:

#!/bin/sh
# 程序功能:向mysql数据库中执行批量自动插入
# 初始化参数
db_name="authdb"
table_name="server_auth_info"
import_file="./servers.txt"

#数据导入
cat $import_file |while read line
  do
     server_name=$(echo $line|cut -d " " -f1)
     machine_code=$(echo $line|cut -d " " -f2)
     echo "$server_name: $machine_code"
     sleep 1
     /usr/local/mysql5.6.17/bin/mysql -utest -p'xxxx' -e "insert into $db_name.$table_name(server_name,auth_code) values('$server_name','$machine_code')";
  done

data1.png

[root@WLJY01 lesson13]# /home/myscript/lesson13/auto_insert_mysqldb.sh

脚本解释

创建表:

CREATE TABLE `server_auth_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,   # 自增字段
  `server_name` char(50) NOT NULL DEFAULT '',
  `auth_code` char(50) DEFAULT NULL,
  PRIMARY KEY (`id`,`server_name`)
) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8

2.调试脚本

[root@WLJY01 lesson13]# sh auto_insert_mysqldb.sh 
WLJY01: 41cec063968d5a4412f753778107c554
WLJY02: 41cec063968d5a4412f753778107c554
WLJY03: 41cec063968d5a4412f753778107c554
WLJY04: 41cec063968d5a4412f753778107c554
WLJY05: 41cec063968d5a4412f753778107c554

data2.png

3.脚本注意的地方

1)循环读取文件中行的方法; while read line
2)字段的截取;cut -d
3)插入时主键的自增 。

shell操作PostgreSQL数据库,完成数据批量插入

1.编写脚本

脚本文件:

#!/bin/sh
# 程序功能:向oracle数据库中执行批量插入

# 初始化参数
#db_name="authdb"
table_name="server_auth_info"
import_file="./servers.txt"

#数据导入
cat $import_file |while read line
  do
     server_name=$(echo $line|cut -d " " -f1)
     machine_code=$(echo $line|cut -d " " -f2)
     echo "$server_name: $machine_code"
     sleep 1
    / app3 / oracle / product / 11r2 / bin / sqlplus test / xxxxx @ localhost / orcl1 <<EOF
    insert into $table_name values(seq_id.nextval,'$server_name','$machine_code');
    commit;
    quit;
EOF
  done
[root@WLJY01 lesson13]# /home/myscript/lesson13/auto_insert_postgresqldb.sh

脚本解释

创建表:

CREATE TABLE server_auth_info (
  id SERIAL,   #自增字段
  server_name char(50),
  auth_code char(50),
  PRIMARY KEY (id,server_name)    
);

2.调试脚本

[root@WLJY01 lesson13]# sh auto_insert_postgresqldb.sh 
WLJY01: 41cec063968d5a4412f753778107c554
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1

data3.png

3.脚本注意的地方

1)循环读取文件中行的方法;
2)字段的截取;
3)插入时主键的自增 ;
4)与mysql数据库插入的区别在哪里?

authdb=# select * from authdb.public.server_auth_info;

public 为模式摘要,每当创建一个新的数据库时,PostgreSQL会自动创建该模式,当登录到 该数据库时,如果没有特殊的指定,将以public模式的形式操作各种数据对象。

shell操作ORACLE数据库,完成数据的批量插入

1.编写脚本

脚本文件:

#!/bin/sh
# 程序功能:向postgresql数据库中执行批量自动插入

# 初始化参数
db_name = " authdb "
table_name = " server_auth_info "
import_file = " . / servers.txt "

#数据导入
cat $import_file |while read line
  do
     server_name = $ ( echo $line|cut -d " " -f1 )
     machine_code = $ ( echo $line|cut -d " " -f2 )
     echo " $ server_name : $ machine_code "
     sleep 1
     / usr / local / postgresql / bin / psql -U postgres -d $db_name  -h localhost -c "INSERT INTO $db_name.public.$table_name(server_name,auth_code) VALUES ('$server_name','$machine_code')"   
  done
[root@WLJY01 lesson13]# /home/myscript/lesson13/auto_insert_oracledb.sh

脚本解释

创建表:

创建序列:CREATE SEQUENCE seq_id start with 1 increment by 1; 


创建表: 
CREATE TABLE server_auth_info (
id int PRIMARY KEY,
server_name char(50),
auth_code char(50)
);

注意:id是自增的,在插入时取序列seq_id.nextval的值做为id值。

2.调试脚本

[oracle@terra_test ~]$ sh auto_insert_oracledb.sh 
WLJY01: 41cec063968d5a4412f753778107c554
SQL*Plus: Release 11.2.0.1.0 Production on Mon Sep 28 17:52:28 2015
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> 
1 row created.
SQL> 
Commit complete.

3.脚本注意的地方

循环读取文件中行的方法;
字段的截取;
oracle自增主键的引用方法(序列seq_id.nextval);
qlplus 交互模式下,如何插入数据。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值