テーブル作成スクリプト
0001: #! /bin/bash 0002: #-----------------------------------------------------------# 0003: # CreateTableSPECIES.sh 0004: # ===================== 0005: # TABLE 作成 0006: # COUNTERTAB 0007: # ORDERTAB 0008: # FAMILY 0009: # GENUS 0010: # SPECIES 0011: # 0012: # CreateTableSPECIES.sh { <option> } 0013: # <option> : -d Procdure を削除する 0014: # -r Procedure を再作成する 0015: # 既定値は新規作成 0016: # encode=UTF8 CHARACTER SET を UTF8 にする 0017: # 既定値は EUCJ_0208 0018: # dbpath=<path> DataBase の PATH 0019: # 既定値は /DB/birds/birds.fdb 0020: # nounique SEQNO 以外は UNIQUE 制約を付けない 0021: # 0022: # $Id: CreateTableSPECIES.sh,v 1.10 ########## $ 0023: # ------------------------------------------------------------ # 0024: encode="EUCJ_0208" 0025: dbpath="localhost:/DB/birds/birds.fdb" 0026: unique="UNIQUE" 0027: while [ "${1}" != "" ]; do 0028: if [ "${1:0:1}" == "-" ]; then 0029: param=${1} 0030: else 0031: if [ "${1:0:7}" == "encode=" ]; then 0032: encode=${1:7} 0033: fi 0034: if [ "${1:0:7}" == "dbpath=" ]; then 0035: dbpath=${1:7} 0036: fi 0037: if [ "${1}" == "nounique" ]; then 0038: unique="" 0039: fi 0040: fi 0041: shift 0042: done 0043: 0044: while [ "${1}" != "" ]; do 0045: if [ "${1:0:1}" == "-" ]; then 0046: param=${1} 0047: else 0048: encode=${1} 0049: fi 0050: shift 0051: done 0052: 0053: if [ "${param}" == "-d" ] || [ "${param}" == "-r" ]; then 0054: echo '**** DROP TABLE ****' 0055: isql << EOF 0056: CONNECT "${dbpath}" USER "SYSDBA" PASSWORD "********"; 0057: DROP TABLE COUNTERTAB; 0058: DROP TABLE ORDERTAB; 0059: DROP TABLE FAMILY; 0060: DROP TABLE GENUS; 0061: DROP TABLE SPECIES; 0062: DROP TABLE ACCLOG; 0063: DROP TABLE REMOTEHOST; 0064: DROP TABLE NLIST; 0065: COMMIT; 0066: QUIT; 0067: EOF 0068: [ "${param}" == "-d" ] && exit 0069: fi 0070: 0071: echo '**** CREATE TABLE ****' 0072: isql << EOF 0073: SET NAMES ${encode}; 0074: CONNECT $dbpath USER SYSDBA PASSWORD ********; 0075: /*******************************************/ 0076: /* SEQNO 採番用 カウンター */ 0077: /*******************************************/ 0078: CREATE TABLE COUNTERTAB( 0079: TABLENAME NCHAR(12) NOT NULL UNIQUE, /* テーブル名 ISO8859 */ 0080: COUNTMAX INTEGER /* カウンター INTEGER */ 0081: ); 0082: INSERT INTO COUNTERTAB(TABLENAME, COUNTMAX) VALUES('ORDERTAB', 0); 0083: INSERT INTO COUNTERTAB(TABLENAME, COUNTMAX) VALUES('FAMILY', 0); 0084: INSERT INTO COUNTERTAB(TABLENAME, COUNTMAX) VALUES('GENUS', 0); 0085: INSERT INTO COUNTERTAB(TABLENAME, COUNTMAX) VALUES('SPECIES', 0); 0086: INSERT INTO COUNTERTAB(TABLENAME, COUNTMAX) VALUES('ACCLOG', 0); 0087: GRANT ALL ON COUNTERTAB TO PUBLIC; 0088: COMMIT; 0089: 0090: /*******************************************/ 0091: /* 目名テーブル */ 0092: /*******************************************/ 0093: CREATE TABLE ORDERTAB( 0094: SEQNO INTEGER UNIQUE, /* 連番号 INTEGER */ 0095: ORDERNAME NCHAR VARYING(24) NOT NULL ${unique}, /* 目名 ISO8859 */ 0096: ORDERJPN CHAR VARYING(12) NOT NULL /* 目の和名 JIS0208 */ 0097: ); 0098: GRANT ALL ON ORDERTAB TO PUBLIC; 0099: COMMIT; 0100: 0101: /*******************************************/ 0102: /* 科名テーブル */ 0103: /*******************************************/ 0104: CREATE TABLE FAMILY( 0105: SEQNO INTEGER UNIQUE, /* 連番号 INTEGER */ 0106: ORDERNAME NCHAR VARYING(24) NOT NULL, /* 目名 ISO8859 */ 0107: FAMILYNAME NCHAR VARYING(24) NOT NULL ${unique}, /* 科名 ISO8859 */ 0108: FAMILYJPN CHAR VARYING(20) NOT NULL /* 科の和名 JIS0208 */ 0109: ); 0110: GRANT ALL ON FAMILY TO PUBLIC; 0111: COMMIT; 0112: 0113: /*******************************************/ 0114: /* 属名テーブル */ 0115: /*******************************************/ 0116: CREATE TABLE GENUS( 0117: SEQNO INTEGER UNIQUE, /* 連番号 INTEGER */ 0118: FAMILYNAME NCHAR VARYING(24) NOT NULL, /* 科名 ISO8859 */ 0119: GENUSNAME NCHAR VARYING(24) NOT NULL ${unique}, /* 属名 ISO8859 */ 0120: GENUSJPN CHAR VARYING(12) /* 属の和名 ISO8859 */ 0121: ); 0122: GRANT ALL ON GENUS TO PUBLIC; 0123: COMMIT; 0124: 0125: /*******************************************/ 0126: /* 種名テーブル */ 0127: /*******************************************/ 0128: CREATE TABLE SPECIES( 0129: SEQNO INTEGER UNIQUE, /* 連番号 INTEGER */ 0130: GENUSNAME NCHAR VARYING(24) NOT NULL, /* 属名 ISO8859 */ 0131: SPECIESNAME NCHAR VARYING(40) NOT NULL ${unique}, /* 種名 ISO8859 */ 0132: SPECIESJPN CHAR VARYING(24), /* 種の和名 JIS0802 */ 0133: SPECIESENG NCHAR VARYING(40), /* 種の英名 ISO8859 */ 0134: SPECIESENGCAP NCHAR VARYING(40) /* 種の英名(CAPS) ISO8859 */ 0135: ); 0136: GRANT ALL ON SPECIES TO PUBLIC; 0137: COMMIT; 0138: 0139: /*******************************************/ 0140: /* ACCLOGテーブル */ 0141: /*******************************************/ 0142: CREATE TABLE ACCLOG( 0143: SEQNO INTEGER UNIQUE, /* 連番号 INTEGER */ 0144: DATETIME TIMESTAMP NOT NULL, /* 日付時刻 DATETIME */ 0145: PID INTEGER NOT NULL, /* プロセス ID INTEGER */ 0146: IPADDR NCHAR(15), /* 問合元 IP-ADDR ISO8859 */ 0147: ELAPSED DOUBLE PRECISION, /* 実行時間 DOUBLE */ 0148: SELCOUNT INTEGER, /* 抽出数 INTEGER */ 0149: QUERY CHAR VARYING(128), /* 問合せパラメータ JIS0802 */ 0150: SQLSTR CHAR VARYING(256) /* SQL 文字列 JIS0802 */ 0151: ); 0152: GRANT ALL ON ACCLOG TO PUBLIC; 0153: COMMIT; 0154: 0155: /*******************************************/ 0156: /* REMOTEHOSTテーブル */ 0157: /*******************************************/ 0158: CREATE TABLE REMOTEHOST( 0159: DATETIME TIMESTAMP NOT NULL, /* 日付時刻 DATETIME */ 0160: IPADDR NCHAR(15) NOT NULL UNIQUE, /* 問合元 IP-ADDR ISO8859 */ 0161: HOSTNAME NCHAR VARYING(100) /* 問合元 ホスト名 ISO8859 */ 0162: ); 0163: GRANT ALL ON REMOTEHOST TO PUBLIC; 0164: COMMIT; 0165: 0166: /*******************************************/ 0167: /* NLISTテーブル */ 0168: /*******************************************/ 0169: CREATE TABLE NLIST( 0170: NDATE DATE NOT NULL, /* 日付 DATE */ 0171: SEQNO INTEGER, /* */ 0172: SPECIESJPN CHAR VARYING(24) /* 種の和名 JIS0802 */ 0173: ); 0174: GRANT ALL ON NLIST TO PUBLIC; 0175: COMMIT; 0176: 0177: QUIT; 0178: EOF 0179: 0180: exit
この HTML を検査する。( XHTML 1.0 Strict で書かれています )
Another HTML Lint Gateway ( Mirrored by htmllint.oosato.org )