upgrade-02-008-to-02-009.sql 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445
  1. -- Licensed Materials - Property of IBM
  2. -- BI and PM: Mobile
  3. -- (C) Copyright IBM Corp. 2007, 2012
  4. -- US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  5. DECLARE
  6. TABLE_DOES_NOT_EXIST_EXCEPTION EXCEPTION;
  7. PRAGMA EXCEPTION_INIT(TABLE_DOES_NOT_EXIST_EXCEPTION, -942);
  8. CONSTRAINT_DOES_NOT_EXIST_EX EXCEPTION;
  9. PRAGMA EXCEPTION_INIT (CONSTRAINT_DOES_NOT_EXIST_EX, -02443);
  10. BEGIN
  11. EXECUTE IMMEDIATE 'ALTER TABLE MOB_RENDERS DROP CONSTRAINT FK_MOB_R_RSID';
  12. EXCEPTION
  13. WHEN TABLE_DOES_NOT_EXIST_EXCEPTION THEN
  14. NULL;
  15. WHEN CONSTRAINT_DOES_NOT_EXIST_EX THEN
  16. NULL;
  17. END;
  18. /
  19. DECLARE
  20. TABLE_DOES_NOT_EXIST_EXCEPTION EXCEPTION;
  21. PRAGMA EXCEPTION_INIT(TABLE_DOES_NOT_EXIST_EXCEPTION, -942);
  22. CONSTRAINT_DOES_NOT_EXIST_EX EXCEPTION;
  23. PRAGMA EXCEPTION_INIT (CONSTRAINT_DOES_NOT_EXIST_EX, -04080);
  24. BEGIN
  25. EXECUTE IMMEDIATE 'ALTER TABLE MOB_USER_RESOURCE DROP CONSTRAINT FK_MOB_URS_RSID';
  26. EXCEPTION
  27. WHEN TABLE_DOES_NOT_EXIST_EXCEPTION THEN
  28. NULL;
  29. WHEN CONSTRAINT_DOES_NOT_EXIST_EX THEN
  30. NULL;
  31. END;
  32. /
  33. DECLARE
  34. TABLE_DOES_NOT_EXIST_EXCEPTION EXCEPTION;
  35. PRAGMA EXCEPTION_INIT(TABLE_DOES_NOT_EXIST_EXCEPTION, -942);
  36. CONSTRAINT_DOES_NOT_EXIST_EX EXCEPTION;
  37. PRAGMA EXCEPTION_INIT (CONSTRAINT_DOES_NOT_EXIST_EX, -02443);
  38. BEGIN
  39. EXECUTE IMMEDIATE 'ALTER TABLE MOB_BLOBS DROP CONSTRAINT FK_MOB_BLOBS_RSID';
  40. EXCEPTION
  41. WHEN TABLE_DOES_NOT_EXIST_EXCEPTION THEN
  42. NULL;
  43. WHEN CONSTRAINT_DOES_NOT_EXIST_EX THEN
  44. NULL;
  45. END;
  46. /
  47. DECLARE
  48. TABLE_DOES_NOT_EXIST_EXCEPTION EXCEPTION;
  49. PRAGMA EXCEPTION_INIT(TABLE_DOES_NOT_EXIST_EXCEPTION, -942);
  50. CONSTRAINT_DOES_NOT_EXIST_EX EXCEPTION;
  51. PRAGMA EXCEPTION_INIT (CONSTRAINT_DOES_NOT_EXIST_EX, -02443);
  52. BEGIN
  53. EXECUTE IMMEDIATE 'ALTER TABLE MOB_BLOBS DROP CONSTRAINT FK_MOB_BLOBS_RID';
  54. EXCEPTION
  55. WHEN TABLE_DOES_NOT_EXIST_EXCEPTION THEN
  56. NULL;
  57. WHEN CONSTRAINT_DOES_NOT_EXIST_EX THEN
  58. NULL;
  59. END;
  60. /
  61. DECLARE
  62. TABLE_DOES_NOT_EXIST_EXCEPTION EXCEPTION;
  63. PRAGMA EXCEPTION_INIT(TABLE_DOES_NOT_EXIST_EXCEPTION, -942);
  64. CONSTRAINT_DOES_NOT_EXIST_EX EXCEPTION;
  65. PRAGMA EXCEPTION_INIT (CONSTRAINT_DOES_NOT_EXIST_EX, -02443);
  66. BEGIN
  67. EXECUTE IMMEDIATE 'ALTER TABLE MOB_USER_RENDER DROP CONSTRAINT FK_MOB_UR_UID';
  68. EXCEPTION
  69. WHEN TABLE_DOES_NOT_EXIST_EXCEPTION THEN
  70. NULL;
  71. WHEN CONSTRAINT_DOES_NOT_EXIST_EX THEN
  72. NULL;
  73. END;
  74. /
  75. DECLARE
  76. TABLE_DOES_NOT_EXIST_EXCEPTION EXCEPTION;
  77. PRAGMA EXCEPTION_INIT(TABLE_DOES_NOT_EXIST_EXCEPTION, -942);
  78. CONSTRAINT_DOES_NOT_EXIST_EX EXCEPTION;
  79. PRAGMA EXCEPTION_INIT (CONSTRAINT_DOES_NOT_EXIST_EX, -02443);
  80. BEGIN
  81. EXECUTE IMMEDIATE 'ALTER TABLE MOB_USER_RENDER DROP CONSTRAINT FK_MOB_UR_RID';
  82. EXCEPTION
  83. WHEN TABLE_DOES_NOT_EXIST_EXCEPTION THEN
  84. NULL;
  85. WHEN CONSTRAINT_DOES_NOT_EXIST_EX THEN
  86. NULL;
  87. END;
  88. /
  89. DECLARE
  90. TABLE_DOES_NOT_EXIST_EXCEPTION EXCEPTION;
  91. PRAGMA EXCEPTION_INIT(TABLE_DOES_NOT_EXIST_EXCEPTION, -942);
  92. CONSTRAINT_DOES_NOT_EXIST_EX EXCEPTION;
  93. PRAGMA EXCEPTION_INIT (CONSTRAINT_DOES_NOT_EXIST_EX, -02443);
  94. BEGIN
  95. EXECUTE IMMEDIATE 'ALTER TABLE MOB_RENDER_HISTORY DROP CONSTRAINT FK_MOB_RH_RID';
  96. EXCEPTION
  97. WHEN TABLE_DOES_NOT_EXIST_EXCEPTION THEN
  98. NULL;
  99. WHEN CONSTRAINT_DOES_NOT_EXIST_EX THEN
  100. NULL;
  101. END;
  102. /
  103. DECLARE
  104. TABLE_DOES_NOT_EXIST_EXCEPTION EXCEPTION;
  105. PRAGMA EXCEPTION_INIT(TABLE_DOES_NOT_EXIST_EXCEPTION, -942);
  106. CONSTRAINT_DOES_NOT_EXIST_EX EXCEPTION;
  107. PRAGMA EXCEPTION_INIT (CONSTRAINT_DOES_NOT_EXIST_EX, -02443);
  108. BEGIN
  109. EXECUTE IMMEDIATE 'ALTER TABLE MOB_RENDER_HISTORY DROP CONSTRAINT FK_MOB_RH_HID';
  110. EXCEPTION
  111. WHEN TABLE_DOES_NOT_EXIST_EXCEPTION THEN
  112. NULL;
  113. WHEN CONSTRAINT_DOES_NOT_EXIST_EX THEN
  114. NULL;
  115. END;
  116. /
  117. DECLARE
  118. TRIGGER_DOES_NOT_EXIST_EXC EXCEPTION;
  119. PRAGMA EXCEPTION_INIT (TRIGGER_DOES_NOT_EXIST_EXC, -04080);
  120. BEGIN
  121. EXECUTE IMMEDIATE 'DROP TRIGGER TGR_MOB_URSRC_SYNC_IN';
  122. EXCEPTION
  123. WHEN TRIGGER_DOES_NOT_EXIST_EXC THEN
  124. NULL;
  125. END;
  126. /
  127. DECLARE
  128. CONSTRAINT_DOES_NOT_EXIST_EX EXCEPTION;
  129. PRAGMA EXCEPTION_INIT (CONSTRAINT_DOES_NOT_EXIST_EX, -04080);
  130. BEGIN
  131. EXECUTE IMMEDIATE 'DROP TRIGGER TGR_MOB_URSRC_SYNC_UP';
  132. EXCEPTION
  133. WHEN CONSTRAINT_DOES_NOT_EXIST_EX THEN
  134. NULL;
  135. END;
  136. /
  137. DECLARE
  138. CONSTRAINT_DOES_NOT_EXIST_EX EXCEPTION;
  139. PRAGMA EXCEPTION_INIT (CONSTRAINT_DOES_NOT_EXIST_EX, -04080);
  140. BEGIN
  141. EXECUTE IMMEDIATE 'DROP TRIGGER TGR_MOB_URSRC_SYNC_DE';
  142. EXCEPTION
  143. WHEN CONSTRAINT_DOES_NOT_EXIST_EX THEN
  144. NULL;
  145. END;
  146. /
  147. DECLARE
  148. TABLE_DOES_NOT_EXIST_EXCEPTION EXCEPTION;
  149. PRAGMA EXCEPTION_INIT(TABLE_DOES_NOT_EXIST_EXCEPTION, -942);
  150. BEGIN
  151. EXECUTE IMMEDIATE 'DROP TABLE MOB_RESOURCES';
  152. EXCEPTION
  153. WHEN TABLE_DOES_NOT_EXIST_EXCEPTION THEN
  154. NULL;
  155. END;
  156. /
  157. DECLARE
  158. TABLE_DOES_NOT_EXIST_EXCEPTION EXCEPTION;
  159. PRAGMA EXCEPTION_INIT(TABLE_DOES_NOT_EXIST_EXCEPTION, -942);
  160. BEGIN
  161. EXECUTE IMMEDIATE 'DROP TABLE MOB_USER_RESOURCE';
  162. EXCEPTION
  163. WHEN TABLE_DOES_NOT_EXIST_EXCEPTION THEN
  164. NULL;
  165. END;
  166. /
  167. DECLARE
  168. TABLE_DOES_NOT_EXIST_EXCEPTION EXCEPTION;
  169. PRAGMA EXCEPTION_INIT(TABLE_DOES_NOT_EXIST_EXCEPTION, -942);
  170. BEGIN
  171. EXECUTE IMMEDIATE 'DROP TABLE MOB_USER_RESOURCE_TYPES';
  172. EXCEPTION
  173. WHEN TABLE_DOES_NOT_EXIST_EXCEPTION THEN
  174. NULL;
  175. END;
  176. /
  177. -- MOB_PORTALITEMS
  178. DECLARE
  179. TABLE_EXISTS_EXCEPTION EXCEPTION;
  180. PRAGMA EXCEPTION_INIT (TABLE_EXISTS_EXCEPTION, -955);
  181. BEGIN
  182. EXECUTE IMMEDIATE 'CREATE TABLE MOB_PORTALITEMS (
  183. PORTALITEM_ID int PRIMARY KEY NOT NULL,
  184. LABEL varchar (100) NULL,
  185. STORE_ID varchar (200) NULL,
  186. CM_PATH varchar (1000) NULL,
  187. SOURCE_PATH varchar (1000) NULL,
  188. DESCRIPTION varchar (500) NULL,
  189. PORTALITEM_TYPE int DEFAULT 0 NOT NULL
  190. )';
  191. EXECUTE IMMEDIATE 'CREATE INDEX IDX_MOB_REP_SI ON MOB_PORTALITEMS(STORE_ID)';
  192. EXCEPTION
  193. WHEN TABLE_EXISTS_EXCEPTION THEN
  194. NULL;
  195. END;
  196. /
  197. DECLARE
  198. SEQUENCE_EXISTS_EXCEPTION EXCEPTION;
  199. PRAGMA EXCEPTION_INIT (SEQUENCE_EXISTS_EXCEPTION, -955);
  200. BEGIN
  201. EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_MOB_PORTALITEMS START WITH 1 INCREMENT BY 1 NOMAXVALUE';
  202. EXCEPTION
  203. WHEN SEQUENCE_EXISTS_EXCEPTION THEN
  204. NULL;
  205. END;
  206. /
  207. CREATE OR REPLACE TRIGGER "TRIGGER_MOB_PORTALITEMS" BEFORE INSERT ON "MOB_PORTALITEMS" FOR EACH ROW
  208. BEGIN
  209. SELECT SEQ_MOB_PORTALITEMS.nextval INTO :new.PORTALITEM_ID FROM DUAL;
  210. END;
  211. /
  212. -- MOB_USER_PORTALITEM
  213. DECLARE
  214. TABLE_EXISTS_EXCEPTION EXCEPTION;
  215. PRAGMA EXCEPTION_INIT (TABLE_EXISTS_EXCEPTION, -955);
  216. BEGIN
  217. EXECUTE IMMEDIATE 'CREATE TABLE MOB_USER_PORTALITEM (
  218. USER_ID int NOT NULL,
  219. PORTALITEM_ID int NOT NULL,
  220. USER_PORTALITEM_TYPE int DEFAULT 0 NOT NULL,
  221. CONSTRAINT FK_MOB_UPI_UID FOREIGN KEY(USER_ID) REFERENCES MOB_USERS(USER_ID) ON DELETE CASCADE,
  222. CONSTRAINT FK_MOB_UPI_RSID FOREIGN KEY(PORTALITEM_ID) REFERENCES MOB_PORTALITEMS(PORTALITEM_ID) ON DELETE CASCADE,
  223. CONSTRAINT PK_MOB_USERPIID PRIMARY KEY(USER_ID, PORTALITEM_ID)
  224. )';
  225. EXCEPTION
  226. WHEN TABLE_EXISTS_EXCEPTION THEN
  227. NULL;
  228. END;
  229. /
  230. -- USER_PORTALITEM_TYPES
  231. DECLARE
  232. TABLE_EXISTS_EXCEPTION EXCEPTION;
  233. PRAGMA EXCEPTION_INIT (TABLE_EXISTS_EXCEPTION, -955);
  234. BEGIN
  235. EXECUTE IMMEDIATE 'CREATE TABLE MOB_USER_PORTALITEM_TYPES (
  236. TYPE smallint NOT NULL,
  237. DESCRIPTION varchar (100) NULL
  238. )';
  239. EXECUTE IMMEDIATE 'INSERT INTO MOB_USER_PORTALITEM_TYPES VALUES (0, ''HOMEREPORT'')';
  240. EXECUTE IMMEDIATE 'INSERT INTO MOB_USER_PORTALITEM_TYPES VALUES (1, ''FAVORITE'')';
  241. EXCEPTION
  242. WHEN TABLE_EXISTS_EXCEPTION THEN
  243. NULL;
  244. END;
  245. /
  246. DECLARE
  247. TABLE_DOES_NOT_EXIST_EXCEPTION EXCEPTION;
  248. PRAGMA EXCEPTION_INIT(TABLE_DOES_NOT_EXIST_EXCEPTION, -942);
  249. BEGIN
  250. EXECUTE IMMEDIATE 'DROP TABLE MOB_USER_RENDER';
  251. EXCEPTION
  252. WHEN TABLE_DOES_NOT_EXIST_EXCEPTION THEN
  253. NULL;
  254. END;
  255. /
  256. DECLARE
  257. TABLE_DOES_NOT_EXIST_EXCEPTION EXCEPTION;
  258. PRAGMA EXCEPTION_INIT(TABLE_DOES_NOT_EXIST_EXCEPTION, -942);
  259. BEGIN
  260. EXECUTE IMMEDIATE 'DROP TABLE MOB_RENDER_HISTORY';
  261. EXCEPTION
  262. WHEN TABLE_DOES_NOT_EXIST_EXCEPTION THEN
  263. NULL;
  264. END;
  265. /
  266. -- MOB_RENDERS
  267. DECLARE
  268. TABLE_DOES_NOT_EXIST_EXCEPTION EXCEPTION;
  269. PRAGMA EXCEPTION_INIT(TABLE_DOES_NOT_EXIST_EXCEPTION, -942);
  270. BEGIN
  271. EXECUTE IMMEDIATE 'DROP TABLE MOB_RENDERS';
  272. EXCEPTION
  273. WHEN TABLE_DOES_NOT_EXIST_EXCEPTION THEN
  274. NULL;
  275. END;
  276. /
  277. DECLARE
  278. TABLE_EXISTS_EXCEPTION EXCEPTION;
  279. PRAGMA EXCEPTION_INIT (TABLE_EXISTS_EXCEPTION, -955);
  280. BEGIN
  281. EXECUTE IMMEDIATE 'CREATE TABLE MOB_RENDERS (
  282. RENDER_ID int PRIMARY KEY NOT NULL, -- identity
  283. RENDER_TIME timestamp NOT NULL,
  284. RENDER_SIZE int NOT NULL,
  285. STATUS_CODE int NOT NULL,
  286. SOURCE_CODE smallint NULL,
  287. DRILL_PARAMS varchar (1000) NULL,
  288. PORTALITEM_ID int NOT NULL,
  289. BASE_DOC varchar (200),
  290. SMALL_THUMB varchar (200),
  291. MEDIUM_THUMB varchar (200),
  292. LARGE_THUMB varchar (200),
  293. CONSTRAINT FK_MOB_R_PIID FOREIGN KEY(PORTALITEM_ID) REFERENCES MOB_PORTALITEMS(PORTALITEM_ID) ON DELETE CASCADE
  294. )';
  295. EXCEPTION
  296. WHEN TABLE_EXISTS_EXCEPTION THEN
  297. NULL;
  298. END;
  299. /
  300. DECLARE
  301. SEQUENCE_EXISTS_EXCEPTION EXCEPTION;
  302. PRAGMA EXCEPTION_INIT (SEQUENCE_EXISTS_EXCEPTION, -955);
  303. BEGIN
  304. EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_MOB_RENDERS START WITH 1 INCREMENT BY 1 NOMAXVALUE';
  305. EXCEPTION
  306. WHEN SEQUENCE_EXISTS_EXCEPTION THEN
  307. NULL;
  308. END;
  309. /
  310. CREATE OR REPLACE TRIGGER "TRIGGER_MOB_RENDERS" BEFORE INSERT ON "MOB_RENDERS" FOR EACH ROW
  311. BEGIN
  312. SELECT SEQ_MOB_RENDERS.nextval INTO :new.RENDER_ID FROM DUAL;
  313. END;
  314. /
  315. -- MOB_BLOBS
  316. DECLARE
  317. TABLE_DOES_NOT_EXIST_EXCEPTION EXCEPTION;
  318. PRAGMA EXCEPTION_INIT(TABLE_DOES_NOT_EXIST_EXCEPTION, -942);
  319. BEGIN
  320. EXECUTE IMMEDIATE 'DROP TABLE MOB_BLOBS';
  321. EXCEPTION
  322. WHEN TABLE_DOES_NOT_EXIST_EXCEPTION THEN
  323. NULL;
  324. END;
  325. /
  326. DECLARE
  327. TABLE_EXISTS_EXCEPTION EXCEPTION;
  328. PRAGMA EXCEPTION_INIT (TABLE_EXISTS_EXCEPTION, -955);
  329. BEGIN
  330. EXECUTE IMMEDIATE 'CREATE TABLE MOB_BLOBS (
  331. HASH char (32) NULL,
  332. USER_ID int NULL,
  333. SEQUENCE int NOT NULL,
  334. BLOB_VALUE blob NOT NULL,
  335. FORMAT smallint,
  336. ADDED timestamp DEFAULT SYSDATE NOT NULL,
  337. CONSTRAINT FK_MOB_BLOBS_UID FOREIGN KEY(USER_ID) REFERENCES MOB_USERS(USER_ID) ON DELETE CASCADE
  338. )';
  339. EXECUTE IMMEDIATE 'CREATE INDEX IDX_MOB_BLOBS_HASH ON MOB_BLOBS(HASH)';
  340. EXCEPTION
  341. WHEN TABLE_EXISTS_EXCEPTION THEN
  342. NULL;
  343. END;
  344. /
  345. -- MOB_RESOURCES
  346. DECLARE
  347. TABLE_EXISTS_EXCEPTION EXCEPTION;
  348. PRAGMA EXCEPTION_INIT (TABLE_EXISTS_EXCEPTION, -955);
  349. BEGIN
  350. EXECUTE IMMEDIATE 'CREATE TABLE MOB_RESOURCES (
  351. RESOURCE_ID int PRIMARY KEY NOT NULL, -- identity
  352. RENDER_ID int,
  353. PATH varchar (200),
  354. HASH char (32) NULL,
  355. CONSTRAINT FK_MOB_RES_RID FOREIGN KEY(RENDER_ID) REFERENCES MOB_RENDERS(RENDER_ID) ON DELETE CASCADE
  356. )';
  357. EXECUTE IMMEDIATE 'CREATE INDEX IDX_MOB_RESOURCES ON MOB_RESOURCES(RENDER_ID)';
  358. EXCEPTION
  359. WHEN TABLE_EXISTS_EXCEPTION THEN
  360. NULL;
  361. END;
  362. /
  363. DECLARE
  364. SEQUENCE_EXISTS_EXCEPTION EXCEPTION;
  365. PRAGMA EXCEPTION_INIT (SEQUENCE_EXISTS_EXCEPTION, -955);
  366. BEGIN
  367. EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_MOB_RESOURCES START WITH 1 INCREMENT BY 1 NOMAXVALUE';
  368. EXCEPTION
  369. WHEN SEQUENCE_EXISTS_EXCEPTION THEN
  370. NULL;
  371. END;
  372. /
  373. CREATE OR REPLACE TRIGGER "TRIGGER_MOB_RESOURCES" BEFORE INSERT ON "MOB_RESOURCES" FOR EACH ROW
  374. BEGIN
  375. SELECT SEQ_MOB_RESOURCES.nextval INTO :new.RESOURCE_ID FROM DUAL;
  376. END;
  377. /
  378. -- MOB_USER_RENDER
  379. DECLARE
  380. TABLE_EXISTS_EXCEPTION EXCEPTION;
  381. PRAGMA EXCEPTION_INIT (TABLE_EXISTS_EXCEPTION, -955);
  382. BEGIN
  383. EXECUTE IMMEDIATE 'CREATE TABLE MOB_USER_RENDER (
  384. USER_ID int NOT NULL,
  385. RENDER_ID int NOT NULL,
  386. NAME varchar (100) NULL,
  387. LAST_VIEWED timestamp NULL,
  388. CONSTRAINT FK_MOB_UR_UID FOREIGN KEY(USER_ID) REFERENCES MOB_USERS(USER_ID) ON DELETE CASCADE,
  389. CONSTRAINT FK_MOB_UR_RID FOREIGN KEY(RENDER_ID) REFERENCES MOB_RENDERS(RENDER_ID) ON DELETE CASCADE,
  390. CONSTRAINT PK_MOB_USERRNDR PRIMARY KEY(USER_ID, RENDER_ID)
  391. )';
  392. EXCEPTION
  393. WHEN TABLE_EXISTS_EXCEPTION THEN
  394. NULL;
  395. END;
  396. /
  397. -- MOB_RENDER_HISTORY
  398. DECLARE
  399. TABLE_EXISTS_EXCEPTION EXCEPTION;
  400. PRAGMA EXCEPTION_INIT (TABLE_EXISTS_EXCEPTION, -955);
  401. BEGIN
  402. EXECUTE IMMEDIATE 'CREATE TABLE MOB_RENDER_HISTORY (
  403. RENDER_ID int NOT NULL,
  404. HISTORY_ID int NOT NULL,
  405. CONSTRAINT FK_MOB_RH_RID FOREIGN KEY(RENDER_ID) REFERENCES MOB_RENDERS(RENDER_ID) ON DELETE CASCADE,
  406. CONSTRAINT FK_MOB_RH_HID FOREIGN KEY(HISTORY_ID) REFERENCES MOB_HISTORY(HISTORY_ID) ON DELETE CASCADE
  407. )';
  408. EXECUTE IMMEDIATE 'CREATE INDEX IDX_MOB_RH_RID ON MOB_RENDER_HISTORY(RENDER_ID)';
  409. EXCEPTION
  410. WHEN TABLE_EXISTS_EXCEPTION THEN
  411. NULL;
  412. END;
  413. /