製作Linux DB Script(DB2)

本文是針對一個項目中DB Script分爲多個*.sql文件,爲了方便部署,則需要製作一個sh腳本文件,批量執行sql文件。

示例:

DBScript 目錄包括4個文件

createDB.sh

createTables.sql

createIndex.sql

createViews.sql

createDB.sh內容如下:

echo "**************************************************"
echo "Create XXX DB"
echo "**************************************************"
db2 force application all
db2 drop db xxx
db2 create database xxx using codeset utf-8 territory us collate using system
db2 connect to xxx
db2 create schema xxx
db2 connect reset
db2 force application all
db2stop
db2start

echo "**************************************************"
echo "Create xxx Tables"
echo "**************************************************"
db2 -tvf ./createTables.sql

echo "**************************************************"
echo "Create xxx indexs"
echo "**************************************************"
db2 -tvf ./createIndex.sql

echo "**************************************************"
echo "Create xxx Views"
echo "**************************************************"
db2 -tvf ./createViews.sql

echo "**************************************************"
echo "Completed."
echo "**************************************************"

createTables.sql

CONNECT TO xxx;
------------------------------------------------
-- DROP Tables
------------------------------------------------
DROP TABLE xxx.USER;
DROP TABLE xxx.ROLE;
DROP TABLE xxx.DEPARTMENT;


------------------------------------------------
-- Table USER: User information table
------------------------------------------------
CREATE TABLE xxx.USER (
    ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 NO CYCLE NO CACHE),
    LOGINID VARCHAR(40) NOT NULL,
    PASSWORD VARCHAR(256) NOT NULL,
    ROLEID INTEGER NOT NULL,
    DEPTID INTEGER NOT NULL, --FK  DEPARTMENT
    NAME VARCHAR(40) NOT NULL,
    EMAIL VARCHAR(40),
    PHONE VARCHAR(30),
    ADDRESS VARCHAR(200),
    COMPANY VARCHAR(100),
    REPOSITORY VARCHAR(5) NOT NULL, -- DB OR LDAP
    DELETED CHARACTER(1) NOT NULL DEFAULT 'N', --Y N
    CREATETIME TIMESTAMP NOT NULL DEFAULT CURRENT TIMESTAMP,
    UPDATETIME TIMESTAMP
) DATA CAPTURE NONE;


ALTER TABLE xxx.USER ADD CONSTRAINT PK_USER PRIMARY KEY (ID);
ALTER TABLE xxx.USER ADD CONSTRAINT CHECK_USER_REPOSITORY CHECK (REPOSITORY IN ('DB','LDAP'));
ALTER TABLE xx.USER ADD CONSTRAINT CHECK_USER_DELETED CHECK (DELETED IN ('Y','N'));

別外兩個SQL文件內容省略,都是標準和DDL語句.

將上面所有文件上傳到Linux同一個目錄下,給createDB.sh執行的權限

切換用戶到db2inst1 su - db2inst1

進行sql腳本所在目錄,執行 ./createDB.sh

即可。

在這裏有一個需要注意的問題,就是sql文件的格式.

需要將sql文件由doc格式轉換成unix格式.

操作方法:

1 進入SQL腳本所在目錄

2 執行 dos2unix *


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章