Advertisement
Guest User

Untitled

a guest
Jun 14th, 2018
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3. -- -----------------------------------------------------
  4. -- Table`Shop`
  5. -- -----------------------------------------------------
  6. CREATE TABLE Shop (
  7.   shop_id NUMBER(10) NOT NULL,
  8.   shop_name VARCHAR2(45) NOT NULL,
  9.   shop_address VARCHAR2(45) NOT NULL,
  10.   PRIMARY KEY (shop_id))
  11. ;
  12.  
  13. -- Generate ID using sequence and trigger
  14. CREATE SEQUENCE Shop_seq START WITH 1 INCREMENT BY 1;
  15.  
  16. CREATE OR REPLACE TRIGGER Shop_seq_tr
  17.  BEFORE INSERT ON Shop FOR EACH ROW
  18.  WHEN (NEW.shop_id IS NULL)
  19. BEGIN
  20.  SELECT Shop_seq.NEXTVAL INTO :NEW.shop_id FROM DUAL;
  21. END;
  22. /
  23.  
  24.  
  25. -- -----------------------------------------------------
  26. -- Table `employees`
  27. -- -----------------------------------------------------
  28. CREATE TABLE employees (
  29.   emp_id NUMBER(10) NOT NULL,
  30.   first_name VARCHAR2(45) NULL,
  31.   last_name VARCHAR2(45) NULL,
  32.   hire_date DATE NULL,
  33.   Shop_shop_id NUMBER(10) NOT NULL,
  34.   PRIMARY KEY (emp_id, Shop_shop_id)
  35.  ,
  36.   CONSTRAINT fk_employees_Shop1
  37.     FOREIGN KEY (Shop_shop_id)
  38.     REFERENCES Shop (shop_id)
  39.    )
  40. ;
  41.  
  42. -- Generate ID using sequence and trigger
  43. CREATE SEQUENCE employees_seq START WITH 1 INCREMENT BY 1;
  44.  
  45. CREATE OR REPLACE TRIGGER employees_seq_tr
  46.  BEFORE INSERT ON employees FOR EACH ROW
  47.  WHEN (NEW.emp_id IS NULL)
  48. BEGIN
  49.  SELECT employees_seq.NEXTVAL INTO :NEW.emp_id FROM DUAL;
  50. END;
  51. /
  52.  
  53. CREATE INDEX fk_employees_Shop1_idx ON employees (Shop_shop_id ASC);
  54.  
  55.  
  56. -- -----------------------------------------------------
  57. -- Table `cd`
  58. -- -----------------------------------------------------
  59. CREATE TABLE cd (
  60.   cd_id NUMBER(10) NOT NULL,
  61.   artist_name VARCHAR2(45) NOT NULL,
  62.   album_title VARCHAR2(45) NOT NULL,
  63.   price NUMBER(2,2) NOT NULL,
  64.   genre VARCHAR2(45) NOT NULL,
  65.   PRIMARY KEY (cd_id))
  66. ;
  67.  
  68. -- Generate ID using sequence and trigger
  69. CREATE SEQUENCE cd_seq START WITH 1 INCREMENT BY 1;
  70.  
  71. CREATE OR REPLACE TRIGGER cd_seq_tr
  72.  BEFORE INSERT ON cd FOR EACH ROW
  73.  WHEN (NEW.cd_id IS NULL)
  74. BEGIN
  75.  SELECT cd_seq.NEXTVAL INTO :NEW.cd_id FROM DUAL;
  76. END;
  77. /
  78.  
  79.  
  80. -- -----------------------------------------------------
  81. -- Table `client`
  82. -- -----------------------------------------------------
  83. CREATE TABLE client (
  84.   client_id NUMBER(10) NOT NULL,
  85.   client_name VARCHAR2(45) NULL,
  86.   client_last_name VARCHAR2(45) NULL,
  87.   client_phone_number VARCHAR2(45) NULL,
  88.   PRIMARY KEY (client_id))
  89. ;
  90.  
  91. -- Generate ID using sequence and trigger
  92. CREATE SEQUENCE client_seq START WITH 1 INCREMENT BY 1;
  93.  
  94. CREATE OR REPLACE TRIGGER client_seq_tr
  95.  BEFORE INSERT ON client FOR EACH ROW
  96.  WHEN (NEW.client_id IS NULL)
  97. BEGIN
  98.  SELECT client_seq.NEXTVAL INTO :NEW.client_id FROM DUAL;
  99. END;
  100. /
  101.  
  102.  
  103. -- -----------------------------------------------------
  104. -- Table `sale`
  105. -- -----------------------------------------------------
  106. CREATE TABLE sale (
  107.   sale_id NUMBER(10) NOT NULL,
  108.   cd_cd_id NUMBER(10) NOT NULL,
  109.   client_client_id NUMBER(10) NOT NULL,
  110.   employees_emp_id NUMBER(10) NOT NULL,
  111.   PRIMARY KEY (sale_id)
  112.  ,
  113.   CONSTRAINT fk_cd_has_client_cd
  114.     FOREIGN KEY (cd_cd_id)
  115.     REFERENCES cd (cd_id)
  116.    ,
  117.   CONSTRAINT fk_cd_has_client_client1
  118.     FOREIGN KEY (client_client_id)
  119.     REFERENCES client (client_id)
  120.    ,
  121.   CONSTRAINT fk_Pardavimas_employees1
  122.     FOREIGN KEY (employees_emp_id)
  123.     REFERENCES employees (emp_id)
  124.    )
  125. ;
  126.  
  127. -- Generate ID using sequence and trigger
  128. CREATE SEQUENCE sale_seq START WITH 1 INCREMENT BY 1;
  129.  
  130. CREATE OR REPLACE TRIGGER sale_seq_tr
  131.  BEFORE INSERT ON sale FOR EACH ROW
  132.  WHEN (NEW.sale_id IS NULL)
  133. BEGIN
  134.  SELECT sale_seq.NEXTVAL INTO :NEW.sale_id FROM DUAL;
  135. END;
  136. /
  137.  
  138. CREATE INDEX fk_cd_has_client_client1_idx ON sale (client_client_id ASC);
  139. CREATE INDEX fk_cd_has_client_cd_idx ON sale (cd_cd_id ASC);
  140. CREATE INDEX fk_Pardavimas_employees1_idx ON sale (employees_emp_id ASC);
  141.  
  142.  
  143. /* SET SQL_MODE=@OLD_SQL_MODE; */
  144. /* SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; */
  145. /* SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement