⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ejbbank.ddl

📁 噶额外噶外骨骼感广泛高热感 就 啊啊
💻 DDL
字号:
echo --- create the EJBBANK database ---
CREATE DATABASE EJBBANK

echo --- connect to EJBBANK database ---
CONNECT TO EJBBANK

echo --- drop tables and triggers ---
DROP TABLE ITSO.TRANSRECORD
DROP TABLE ITSO.CUSTACCT
DROP TABLE ITSO.CUSTADDRESS
DROP TABLE ITSO.CHECKING
DROP TABLE ITSO.SAVINGS
DROP TABLE ITSO.ACCOUNT
DROP TABLE ITSO.CUSTOMER
DROP TABLE ITSO.CUSTOMERINFO
DROP TRIGGER ITSO.INSERTACCOUNT
DROP TRIGGER ITSO.UPDATEACCOUNT

echo --- create tables ---
CREATE TABLE ITSO.CUSTOMER (                                \
   customerid    INTEGER     NOT NULL,                      \
   title         CHAR(3)     NOT NULL,                      \
   firstName     VARCHAR(30) NOT NULL,                      \
   lastName      VARCHAR(30) NOT NULL,                      \
   userID        CHAR(8),                                   \
   password      CHAR(8),                                   \
   address       BLOB(2000),                                \
                             PRIMARY KEY (CUSTOMERID)       \
)

CREATE TABLE ITSO.CUSTADDRESS (                             \
   customerid    INTEGER     NOT NULL,                      \
   street        CHAR(20),                                  \
   city          CHAR(12),                                  \
   state         CHAR(12),                                  \
   zipcode       CHAR(10),                                  \
                             PRIMARY KEY (CUSTOMERID)       \
)

CREATE TABLE ITSO.CUSTACCT (                                \
   customerid    INTEGER     NOT NULL,                      \
   accID         CHAR(8)     NOT NULL,                      \
                             PRIMARY KEY (CUSTOMERID,ACCID) \
)

CREATE TABLE ITSO.ACCOUNT (                                 \
   accid         CHAR(8)     NOT NULL,                      \
   balance       DEC(8,2)    NOT NULL DEFAULT 0.00,         \
   interest      INTEGER     NOT NULL DEFAULT 5,            \
   acctype       VARCHAR(8)  NOT NULL DEFAULT 'ACCOUNT',    \
   discriminator CHAR(1)     NOT NULL DEFAULT 'A',          \
   overdraft     DEC(8,2)    NOT NULL DEFAULT 200.00,       \
   minamount     DEC(8,2)    NOT NULL DEFAULT 100.00,       \
                             PRIMARY KEY (ACCID)            \
)

CREATE TABLE ITSO.CHECKING (                                \
   accid         CHAR(8)     NOT NULL,                      \
   overdraft     DEC(8,2)    NOT NULL DEFAULT 200.00,       \
                             PRIMARY KEY (ACCID)            \
)

CREATE TABLE ITSO.SAVINGS (                                 \
   accid         CHAR(8)     NOT NULL,                      \
   minamount     DEC(8,2)    NOT NULL DEFAULT 100.00,       \
                             PRIMARY KEY (ACCID)            \
)

CREATE TABLE ITSO.TRANSRECORD (                             \
   transid       TIMESTAMP   NOT NULL,                      \
   accid         CHAR(8)             ,                      \
   transtype     CHAR(1)     NOT NULL,                      \
   transamt      DEC(8,2)    NOT NULL,                      \
                             PRIMARY KEY (TRANSID)          \
)

CREATE TABLE ITSO.CUSTOMERINFO (                            \ 
   customerid    INTEGER     NOT NULL,                      \
   infoid        INTEGER     NOT NULL,                      \
   description   VARCHAR(50),                               \
   data          BLOB(10K),                                 \
                           PRIMARY KEY (CUSTOMERID, INFOID) \
)
        
echo --- referential integrity ---
ALTER TABLE ITSO.TRANSRECORD                                \
   ADD CONSTRAINT "AccountTransrecord" FOREIGN KEY (ACCID)  \
   REFERENCES ITSO.ACCOUNT ON DELETE RESTRICT

ALTER TABLE ITSO.CUSTACCT                                   \
   ADD CONSTRAINT "CAtoCustomer"  FOREIGN KEY (CUSTOMERID)  \
   REFERENCES ITSO.CUSTOMER ON DELETE RESTRICT

ALTER TABLE ITSO.CUSTACCT                                   \
   ADD CONSTRAINT "CAtoAccount"  FOREIGN KEY (ACCID)        \
   REFERENCES ITSO.ACCOUNT ON DELETE RESTRICT

ALTER TABLE ITSO.CUSTADDRESS                                \
   ADD CONSTRAINT "CustAddr"  FOREIGN KEY (CUSTOMERID)      \
   REFERENCES ITSO.CUSTOMER ON DELETE RESTRICT

ALTER TABLE ITSO.CHECKING                                   \
   ADD CONSTRAINT "CheckingAccount"  FOREIGN KEY (ACCID)    \
   REFERENCES ITSO.ACCOUNT ON DELETE RESTRICT

ALTER TABLE ITSO.SAVINGS                                    \
   ADD CONSTRAINT "SavingsAccount"  FOREIGN KEY (ACCID)     \
   REFERENCES ITSO.ACCOUNT ON DELETE RESTRICT

echo --- triggers -------------------
CREATE TRIGGER ITSO.INSERTACCOUNT NO CASCADE BEFORE INSERT            \
    ON ITSO.ACCOUNT referencing new as ACCT for each row mode db2sql  \
    BEGIN ATOMIC                                                      \
      SET ACCT.acctype =                                              \
         CASE                                                         \
           WHEN ACCT.discriminator = 'C' THEN 'CHECKING'              \
           WHEN ACCT.discriminator = 'S' THEN 'SAVINGS'               \
           WHEN ACCT.discriminator = 'A' THEN 'ACCOUNT'               \
         END;                                                         \
    END

CREATE TRIGGER ITSO.UPDATEACCOUNT NO CASCADE BEFORE UPDATE            \
    ON ITSO.ACCOUNT referencing new as ACCT for each row mode db2sql  \
    BEGIN ATOMIC                                                      \
      SET ACCT.acctype =                                              \
         CASE                                                         \
           WHEN ACCT.discriminator = 'C' THEN 'CHECKING'              \
           WHEN ACCT.discriminator = 'S' THEN 'SAVINGS'               \
           WHEN ACCT.discriminator = 'A' THEN 'ACCOUNT'               \
         END;                                                         \
    END

echo --- execute GRANT statements ---
GRANT CONNECT ON DATABASE          TO PUBLIC
GRANT ALL     ON ITSO.CUSTOMER     TO PUBLIC
GRANT ALL     ON ITSO.ACCOUNT      TO PUBLIC
GRANT ALL     ON ITSO.CHECKING     TO PUBLIC
GRANT ALL     ON ITSO.SAVINGS      TO PUBLIC
GRANT ALL     ON ITSO.TRANSRECORD  TO PUBLIC
GRANT ALL     ON ITSO.CUSTACCT     TO PUBLIC
GRANT ALL     ON ITSO.CUSTADDRESS  TO PUBLIC
GRANT ALL     ON ITSO.CUSTOMERINFO TO PUBLIC

echo --- connect reset ---
CONNECT RESET

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -