Database trigger
ಡೇಟಾಬೇಸ್ ಪ್ರಚೋದಕವು ಕಾರ್ಯವಿಧಾನದ ಸಂಕೇತವಾಗಿದ್ದು, ನಿರ್ದಿಷ್ಟ ಕೋಷ್ಟಕದಲ್ಲಿನ ಕೆಲವು ಘಟನೆಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯೆಯಾಗಿ ಅಥವಾ ಡೇಟಾಬೇಸ್ನಲ್ಲಿನ ವೀಕ್ಷಣೆಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತದೆ. ಡೇಟಾಬೇಸ್ನಲ್ಲಿನ ಮಾಹಿತಿಯ ಸಮಗ್ರತೆಯನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳಲು ಪ್ರಚೋದಕವನ್ನು ಹೆಚ್ಚಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಹೊಸ ದಾಖಲೆಯನ್ನು (ಹೊಸ ಕೆಲಸಗಾರನನ್ನು ಪ್ರತಿನಿಧಿಸುವ) ಉದ್ಯೋಗಿಗಳ ಟೇಬಲ್ಗೆ ಸೇರಿಸಿದಾಗ, ತೆರಿಗೆಗಳು, ರಜಾದಿನಗಳು ಮತ್ತು ಸಂಬಳಗಳ ಟೇಬಲ್ಗಳಲ್ಲಿ ಹೊಸ ದಾಖಲೆಗಳನ್ನು ಸಹ ರಚಿಸಬೇಕು. ಐತಿಹಾಸಿಕ ದತ್ತಾಂಶವನ್ನು ದಾಖಲಿಸಲು ಪ್ರಚೋದಕಗಳನ್ನು ಸಹ ಬಳಸಬಹುದು, ಉದಾಹರಣೆಗೆ ಉದ್ಯೋಗಿಗಳ ಹಿಂದಿನ ಸಂಬಳದ ಮೇಲೆ ನಿಗಾ ಇಡಲು. ಡಿಬಿಎಂಎಸ್ನಲ್ಲಿನ ಪ್ರಚೋದಕಗಳು ಕೆಳಗೆ ಕೆಲವು ಜನಪ್ರಿಯ ಡಿಬಿಎಂಎಸ್ ಬೆಂಬಲವು ಹೇಗೆ ಪ್ರಚೋದಿಸುತ್ತದೆ ಎಂಬುದರ ವಿವರಣೆಗಳ ಸರಣಿಯನ್ನು ಅನುಸರಿಸುತ್ತದೆ. ಒರಾಕಲ್ ಡೇಟಾವನ್ನು ಮಾರ್ಪಡಿಸಿದಾಗ ಆ ಫೈರ್ ಅನ್ನು ಪ್ರಚೋದಿಸುತ್ತದೆ (ಮತ್ತು ಪಿಎಲ್/ಎಸ್ಕ್ಯೂಎಲ್ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ) ಜೊತೆಗೆ, ಒರಾಕಲ್ 10ಜಿ ಸ್ಕೀಮಾ-ಮಟ್ಟದ ಆಬ್ಜೆಕ್ಟ್ಗಳನ್ನು (ಅಂದರೆ, ಕೋಷ್ಟಕಗಳು) ಮಾರ್ಪಡಿಸಿದಾಗ ಮತ್ತು ಬಳಕೆದಾರರ ಲಾಗಾನ್ ಅಥವಾ ಲಾಗ್ಆಫ್ ಘಟನೆಗಳು ಸಂಭವಿಸಿದಾಗ ಆ ಫೈರ್ ಅನ್ನು ಪ್ರಚೋದಿಸುತ್ತದೆ. ನಾಲ್ಕು ಮುಖ್ಯ ವಿಧದ ಪ್ರಚೋದಕಗಳೆಂದರೆಃ ಸಾಲು-ಮಟ್ಟದ ಪ್ರಚೋದಕಃ ಸಾಲಿನ ಯಾವುದೇ ಅಂಕಣದ ಮೌಲ್ಯವು ಕಾಲಮ್-ಮಟ್ಟದ ಪ್ರಚೋದಕವನ್ನು ಬದಲಾಯಿಸುವ ಮೊದಲು ಅಥವಾ ನಂತರ ಇದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆಃ ನಿರ್ದಿಷ್ಟ ಅಂಕಣದ ಬದಲಾವಣೆಗಳ ಮೊದಲು ಅಥವಾ ನಂತರ ಇದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ ಪ್ರತಿ ಸಾಲಿನ ಪ್ರಕಾರಕ್ಕೆಃ ಈ ಪ್ರಚೋದಕವು ಒಳಸೇರಿಸುವಿಕೆ/ನವೀಕರಣ/ಅಳಿಸುವಿಕೆಯಿಂದ ಪ್ರಭಾವಿತವಾದ ಫಲಿತಾಂಶದ ಗುಂಪಿನ ಪ್ರತಿ ಸಾಲಿಗೆ ಒಮ್ಮೆ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತದೆ ಪ್ರತಿ ಹೇಳಿಕೆಯ ಪ್ರಕಾರಕ್ಕೆಃ ಈ ಪ್ರಚೋದಕವು ಸಂಪೂರ್ಣ ಫಲಿತಾಂಶದ ಗುಂಪಿಗೆ ಒಮ್ಮೆ ಮಾತ್ರ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತದೆ, ಆದರೆ ಹೇಳಿಕೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದಾಗ ಪ್ರತಿ ಬಾರಿಯೂ ಸಹ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತದೆ. ಒರಾಕಲ್ 8i ಯಿಂದ, ಡೇಟಾಬೇಸ್ ಘಟನೆಗಳು-ಲೋಗನ್ಗಳು, ಲಾಗ್ಆಫ್ಗಳು, ಸ್ಟಾರ್ಟ್ಅಪ್ಗಳು-ಒರಾಕಲ್ ಪ್ರಚೋದಕಗಳನ್ನು ಪ್ರಚೋದಿಸಬಹುದು. ಮೈಕ್ರೋಸಾಫ್ಟ್ SQL ಸರ್ವರ್ ಡಿಡಿಎಲ್ ಪ್ರಚೋದಕಗಳಿಗಾಗಿ ಮೈಕ್ರೋಸಾಫ್ಟ್ SQL ಸರ್ವರ್ನಲ್ಲಿ ಲಭ್ಯವಿರುವ ಎಲ್ಲಾ ಫೈರಿಂಗ್ ಘಟನೆಗಳ ಪಟ್ಟಿಯು ಮೈಕ್ರೋಸಾಫ್ಟ್ ಡಾಕ್ಸ್ನಲ್ಲಿ ಲಭ್ಯವಿದೆ. ತಾತ್ಕಾಲಿಕ ಅಳವಡಿಸಿದ ಮತ್ತು ಅಳಿಸಲಾದ ಕೋಷ್ಟಕಗಳನ್ನು ಪ್ರವೇಶಿಸುವ ಮೂಲಕ ಪ್ರಚೋದಕಗಳಲ್ಲಿ ಷರತ್ತುಬದ್ಧ ಕ್ರಮಗಳನ್ನು (ಅಥವಾ ಮಾರ್ಪಾಡಿನ ನಂತರ ದತ್ತಾಂಶವನ್ನು ಪರೀಕ್ಷಿಸುವುದು) ಮಾಡಲಾಗುತ್ತದೆ. ಪೋಸ್ಟ್ಗ್ರೆಎಸ್ಕ್ಯೂಎಲ್ 1997ರಲ್ಲಿ ಪ್ರಚೋದಕಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಪರಿಚಯಿಸಿತು. SQL: 2003ರಲ್ಲಿ ಈ ಕೆಳಗಿನ ಕಾರ್ಯವನ್ನು ಈ ಹಿಂದೆ ಪೋಸ್ಟ್ಗ್ರೆಎಸ್ಕ್ಯೂಎಲ್ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಿರಲಿಲ್ಲಃ ನಿರ್ದಿಷ್ಟ ಅಂಕಣಗಳಿಗೆ ನವೀಕರಣಗಳನ್ನು ಮಾಡಲು ಪ್ರಚೋದಕಗಳಿಗೆ SQL ಅವಕಾಶ ನೀಡುತ್ತದೆ; ಪೋಸ್ಟ್ಗ್ರೆಎಸ್ಕ್ಯೂಎಲ್ನ ಆವೃತ್ತಿ 9ರಂತೆ ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಪೋಸ್ಟ್ಗ್ರೆಎಸ್ಕ್ಯೂಎಲ್ನಲ್ಲಿಯೂ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗಿದೆ. ಈ ಮಾನದಂಡವು SELECT, INSERT, UPDATE ಅನ್ನು ಹೊರತುಪಡಿಸಿ ಹಲವಾರು SQL ಹೇಳಿಕೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಉದಾಹರಣೆಗೆ ಕ್ರಿಯೇಟ ಟೇಬಲ್ ಅನ್ನು ಪ್ರಚೋದಿಸಿದ ಕ್ರಿಯೆಯಾಗಿ. ಕ್ರಿಯೇಟ್ ಟೇಬಲ್ ಅನ್ನು ಕರೆಯಲು ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನ ಅಥವಾ ಕಾರ್ಯವನ್ನು ರಚಿಸುವ ಮೂಲಕ ಇದನ್ನು ಮಾಡಬಹುದು. ಸಾರಾಂಶಃ ಫೈರ್ಬರ್ಡ್ ಫೈರ್ಬರ್ಡ್ ಅನೇಕ ಸಾಲು-ಮಟ್ಟಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ, ಮೊದಲು ಅಥವಾ ನಂತರ, INSERT, UPDATE, DELETE (ಅಥವಾ ಅದರ ಯಾವುದೇ ಸಂಯೋಜನೆ) ಪ್ರತಿ ಟೇಬಲ್ಗೆ ಪ್ರಚೋದಕಗಳು, ಅಲ್ಲಿ ಅವು ಯಾವಾಗಲೂ ಡೀಫಾಲ್ಟ್ ಟೇಬಲ್ ಬದಲಾವಣೆಗಳಿಗೆ "ಹೆಚ್ಚುವರಿಯಾಗಿ" ಇರುತ್ತವೆ, ಮತ್ತು ಪರಸ್ಪರ ಸಂಬಂಧಿಸಿದ ಪ್ರಚೋದಕಗಳ ಕ್ರಮವನ್ನು ಅದು ಅಸ್ಪಷ್ಟವಾಗಿರುವಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು (ಪೋಸಿಷನ್ ಷರತ್ತು). ವೀಕ್ಷಣೆಗಳ ಮೇಲೆ ಪ್ರಚೋದಕಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿರಬಹುದು, ಅಲ್ಲಿ ಅವು ಯಾವಾಗಲೂ ಪ್ರಚೋದಕಗಳ ಬದಲಿಗೆ, ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ನವೀಕರಿಸಬಹುದಾದ ವೀಕ್ಷಣೆಯ ತರ್ಕವನ್ನು ಬದಲಾಯಿಸುತ್ತವೆ. (ಆವೃತ್ತಿ 2.1ರ ಮೊದಲು, ನವೀಕರಿಸಬಹುದಾದ ವೀಕ್ಷಣೆಗಳ ಮೇಲಿನ ಪ್ರಚೋದಕಗಳು ಪೂರ್ವನಿಯೋಜಿತ ತರ್ಕದ ಜೊತೆಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ.) ಫೈರ್ಬರ್ಡ್ ರೂಪಾಂತರಗೊಳ್ಳುವ ಟೇಬಲ್ ವಿನಾಯಿತಿಗಳನ್ನು (ಒರಾಕಲ್ನಂತೆ) ಹೆಚ್ಚಿಸುವುದಿಲ್ಲ, ಮತ್ತು ಪ್ರಚೋದಕಗಳು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಗೂಡು ಮತ್ತು ಅಗತ್ಯವಿರುವಂತೆ ಪುನರಾವರ್ತನೆಯಾಗುತ್ತವೆ (SQL ಸರ್ವರ್ ಗೂಡುಕಟ್ಟುವಿಕೆಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ ಆದರೆ ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಪುನರಾವರ್ತನೆಯಾಗುವುದಿಲ್ಲ.) ಫೈರ್ಬರ್ಡ್ನ ಪ್ರಚೋದಕಗಳು ಹೊಸ ಮತ್ತು ಹಳೆಯ ಸಂದರ್ಭದ ಅಸ್ಥಿರಗಳನ್ನು ಬಳಸುತ್ತವೆ (ಕೋಷ್ಟಕಗಳನ್ನು ಸೇರಿಸಲಾಗಿಲ್ಲ ಮತ್ತು ಅಳಿಸಲಾಗಿಲ್ಲ) ಮತ್ತು ಪ್ರಚೋದಕದ ಪ್ರಸ್ತುತ ಬಳಕೆಯನ್ನು ಸೂಚಿಸಲು ಅಪ್ ಡೇಟಿಂಗ್, ಇನ್ಸರ್ಟಿಂಗ್ ಮತ್ತು ಡಿಲೀಟಿಂಗ್ ಫ್ಲಾಗ್ಗಳನ್ನು ಒದಗಿಸುತ್ತವೆ. {CREATE | RECRIATE | CREATE OR ALTER} ಟ್ರೈಗರ್ ಹೆಸರು [ಟೇಬಲ್ ಹೆಸರು | ವ್ಯೂ ಹೆಸರು] [ಆಕ್ಟಿವ್ | INACTIVE] {BEFORE | AFTER} {INSERT [ಅಥವಾ ಅಪ್ಡೇಟ್] [ಅಥವಾ ಅಳಿಸಿ] | ನವೀಕರಿಸಿ [ಅಥವಾ INSERT] [ಅಥವಾ ಅಳಿಸಿ] | ಅಳಿಸಿ [ಅಥವಾ ನವೀಕರಿಸಿ] [ಅಥವಾ INSERT]] [ಸ್ಥಾನ n] ಪ್ರಾರಂಭಿಸಿದಂತೆ. ಆವೃತ್ತಿ 2.1 ರಂತೆ, ಫೈರ್ಬರ್ಡ್ ಹೆಚ್ಚುವರಿಯಾಗಿ ಈ ಕೆಳಗಿನ ಡೇಟಾಬೇಸ್-ಮಟ್ಟದ ಪ್ರಚೋದಕಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆಃ ಸಂಪರ್ಕ (ಇಲ್ಲಿ ಎತ್ತಲಾದ ವಿನಾಯಿತಿಗಳು ಸಂಪರ್ಕವನ್ನು ಪೂರ್ಣಗೊಳಿಸುವುದನ್ನು ತಡೆಯುತ್ತವೆ) ಟ್ರಾನ್ಸ್ಯಾಕ್ಷನ್ ಕಮಿಟ್ ಪ್ರಚೋದಕದಲ್ಲಿ ಒಂದು ವಿನಾಯಿತಿಯನ್ನು ಎತ್ತಿದರೆ, ಪ್ರಚೋದಕವು ಇಲ್ಲಿಯವರೆಗೆ ಮಾಡಿದ ಬದಲಾವಣೆಗಳನ್ನು ಹಿಂತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ ಮತ್ತು ಕ್ಲೈಂಟ್ ಅಪ್ಲಿಕೇಶನ್ಗೆ ತಿಳಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ವಹಿವಾಟು ಸಕ್ರಿಯವಾಗಿ ಉಳಿಯುತ್ತದೆ, COMMIT ಅನ್ನು ಎಂದಿಗೂ ವಿನಂತಿಸಲಾಗಿಲ್ಲ; ಕ್ಲೈಂಟ್ ಅಪ್ಲಿಕೇಶನ್ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಲು ಮತ್ತು ಮರು-ವಿನಂತಿಯನ್ನು ಮಾಡುವುದನ್ನು ಮುಂದುವರಿಸಬಹುದು. ಡೇಟಾಬೇಸ್ ಪ್ರಚೋದಕಗಳಿಗೆ ಸಿಂಟ್ಯಾಕ್ಸ್ಃ {ಕ್ರಿಯೇಟ್ | ರಿಕ್ರೀಟ್ | ಕ್ರಿಯೇಟ್ ಅಥವಾ ಆಲ್ಟರ್} ಟ್ರೈಗರ್ ಹೆಸರು [ಆಕ್ಟಿವ್ | ಇನಾಕ್ಟಿವ್] ಆನ್ {ಕನೆಕ್ಟ್ | ಡಿಸ್ಕನೆಕ್ಟ್ | ಟ್ರಾನ್ಸಾಕ್ಷನ್ ಸ್ಟಾರ್ಟ್ | ಟ್ರಾನ್ಸಾಕ್ಷನ್ ಕಮಿಟ್ | ಟ್ರಾನ್ಸಾಕ್ಷನ್ ರೋಲ್ಬ್ಯಾಕ್} [ಪೊಸಿಷನ್ ಎನ್] ಪ್ರಾರಂಭಿಸಿದಂತೆ. ಮೈಎಸ್ಕ್ಯೂಎಲ್/ಮರಿಯಾಡಿಬಿ ಡಿಬಿಎಂಎಸ್ನಲ್ಲಿನ ಪ್ರಚೋದಕಗಳಿಗೆ ಮೈಎಸ್ಕ್ಯೂಎಲ್/ಮರಿಯಾಡಿಬಿ ಲಿಮಿಟೆಡ್ ಬೆಂಬಲವನ್ನು 2005 ರಲ್ಲಿ ಪ್ರಾರಂಭಿಸಲಾದ ಮೈಎಸ್ಕ್ಯೂಎಲ್ನ 5.0 ಆವೃತ್ತಿಯಲ್ಲಿ ಸೇರಿಸಲಾಗಿದೆ. ಆವೃತ್ತಿ 8ರಂತೆ, ಅವು ಡಿಡಿಎಲ್ (ಡೇಟಾ ಡೆಫಿನಿಷನ್ ಲ್ಯಾಂಗ್ವೇಜ್) ಪ್ರಚೋದಕಗಳಿಗೆ ಮತ್ತು ಡಿಎಂಎಲ್ (ಡೇಟಾ ಮ್ಯಾನಿಪ್ಯುಲೇಷನ್ ಲ್ಯಾಂಗ್ವೇಜ್) ಪ್ರಚೋದಕಗಳಿಗೆ ಅವಕಾಶ ನೀಡುತ್ತವೆ. ಅವು ಪ್ರಚೋದಕಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಎರಡೂ ರೀತಿಯ ಡಿಡಿಎಲ್ ಪ್ರಚೋದಕಗಳನ್ನು (ನಂತರ ಅಥವಾ ಮೊದಲು) ಬಳಸಲು ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತವೆ. ಅವುಗಳನ್ನು ಕ್ರಿಯೇಟ್ ಟ್ರೈಗರ್ ಎಂಬ ಷರತ್ತನ್ನು ಬಳಸಿಕೊಂಡು ರಚಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಡ್ರಾಪ್ ಟ್ರೈಗರ್ ಎಂಬ ಷರತ್ತನ್ನು ಬಳಸಿಕೊಂಡು ಅಳಿಸಲಾಗುತ್ತದೆ. ಒಂದು ಘಟನೆಯು ಸಂಭವಿಸುತ್ತದೆ ಎಂದು ಕರೆಯಲಾಗುವ ಹೇಳಿಕೆಯನ್ನು FOR EACH ROW ಎಂಬ ಷರತ್ತಿನ ನಂತರ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ, ನಂತರ ಕೀವರ್ಡ್ (SET ಅಥವಾ BEGIN) ಇರುತ್ತದೆ, ಇದು ಈ ಕೆಳಗಿನವು ಅನುಕ್ರಮವಾಗಿ ಅಭಿವ್ಯಕ್ತಿ ಅಥವಾ ಹೇಳಿಕೆಯೇ ಎಂಬುದನ್ನು ಸೂಚಿಸುತ್ತದೆ. LUW ಗಾಗಿ DB2 ಎಂದು ಕರೆಯಲಾಗುವ ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಿಗಾಗಿ IBM DB2 (LUW ಎಂದರೆ ಲಿನಕ್ಸ್, ಯುನಿಕ್ಸ್, ವಿಂಡೋಸ್) ಮೂರು ಪ್ರಚೋದಕ ಪ್ರಕಾರಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆಃ ಪ್ರಚೋದಕಕ್ಕಿಂತ ಮೊದಲು, ಪ್ರಚೋದಕದ ನಂತರ ಮತ್ತು ಪ್ರಚೋದಕದ ಬದಲಿಗೆ. ಹೇಳಿಕೆ ಮಟ್ಟ ಮತ್ತು ಸಾಲು ಮಟ್ಟದ ಪ್ರಚೋದಕಗಳೆರಡಕ್ಕೂ ಬೆಂಬಲವಿದೆ. ಮೇಜಿನ ಮೇಲೆ ಅದೇ ಕಾರ್ಯಾಚರಣೆಗೆ ಹೆಚ್ಚಿನ ಪ್ರಚೋದಕಗಳಿದ್ದರೆ, ಪ್ರಚೋದಕ ಸೃಷ್ಟಿ ದತ್ತಾಂಶದಿಂದ ಫೈರಿಂಗ್ ಕ್ರಮವನ್ನು ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ. ಆವೃತ್ತಿ 9.7 ರಿಂದ ಐಬಿಎಂ ಡಿಬಿ2 ಸ್ವಾಯತ್ತ ವಹಿವಾಟುಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಪ್ರಚೋದಿಸುವ ಮೊದಲು ದತ್ತಾಂಶವನ್ನು ಪರಿಶೀಲಿಸುವುದು ಮತ್ತು ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಅನುಮತಿಸಬೇಕೇ ಎಂದು ನಿರ್ಧರಿಸುವುದು. ಪ್ರಚೋದಕದ ಮೊದಲು ವಿನಾಯಿತಿಯನ್ನು ಎಸೆದರೆ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಯಾವುದೇ ದತ್ತಾಂಶವನ್ನು ಬದಲಾಯಿಸಲಾಗುವುದಿಲ್ಲ. ಡಿಬಿ2 ನಲ್ಲಿ ಪ್ರಚೋದಕಗಳನ್ನು ಓದಲು ಮಾತ್ರ ಮೊದಲು-ಪ್ರಚೋದಕಗಳ ಮೊದಲು ನೀವು ದತ್ತಾಂಶವನ್ನು ಮಾರ್ಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ವಿನಂತಿಸಿದ ಬದಲಾವಣೆಯನ್ನು ನಡೆಸಿದ ನಂತರ ನಂತರದ ಸಂಸ್ಕರಣೆಗಾಗಿ ಪ್ರಚೋದಕಗಳನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಪ್ರಚೋದಕಗಳು ದತ್ತಾಂಶವನ್ನು ಕೋಷ್ಟಕಗಳಲ್ಲಿ ಬರೆಯಬಹುದು ಮತ್ತು ಇತರ ಕೆಲವು ದತ್ತಸಂಚಯಗಳಿಗಿಂತ ಭಿನ್ನವಾಗಿ ನೀವು ಪ್ರಚೋದಕವು ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಕೋಷ್ಟಕವನ್ನು ಒಳಗೊಂಡಂತೆ ಯಾವುದೇ ಕೋಷ್ಟಕದಲ್ಲಿ ಬರೆಯಬಹುದು. ಪ್ರಚೋದಕಗಳ ಬದಲಿಗೆ ವೀಕ್ಷಣೆಗಳನ್ನು ಬರೆಯಲು ಸಾಧ್ಯವಾಗುವಂತೆ ಮಾಡುವುದು. ಪ್ರಚೋದಕಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಎಸ್. ಕ್ಯೂ. ಎಲ್. ಪಿ. ಎಲ್. ಭಾಷೆಯಲ್ಲಿ ಪ್ರೋಗ್ರಾಮ್ ಮಾಡಲಾಗುತ್ತದೆ. SQLite CREATE [TEMP | TEMPORARY] TRIGGER [ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದರೆ] [ಡೇಟಾಬೇಸ್ _ ಹೆಸರು.] ಟ್ರಿಗರ್ _ ನೇಮ್ [BEFORE | AFTER | INSTEAD OF] {DELETE | INSERT | UPDATE [OF ಕಾಲಮ್ _ ನೇಮ್ [, ಕಾಲಮ್ _ ನೇಮ್].]} ಆನ್ {ಟೇಬಲ್ _ ನೇಮ್ | ವ್ಯೂ _ ನೇಮ್} [ಪ್ರತಿ ROW ಗಾಗಿ] [ಯಾವಾಗ ಷರತ್ತು ಕಡ್ಡಾಯವಾಗಿದೆ] ಪ್ರಾರಂಭಿಸಿ. ಎಂಡ್ SQLite ಸಾಲು-ಮಟ್ಟದ ಪ್ರಚೋದಕಗಳನ್ನು ಮಾತ್ರ ಬೆಂಬಲಿಸುತ್ತದೆ, ಹೇಳಿಕೆ-ಮಟ್ಟದ ಪ್ರಚೋದಕಗಳಲ್ಲ. SQLiteನಲ್ಲಿ ಬೆಂಬಲಿತವಾಗಿರದ ನವೀಕರಿಸಬಹುದಾದ ವೀಕ್ಷಣೆಗಳನ್ನು INSTEAD OF ಪ್ರಚೋದಕಗಳೊಂದಿಗೆ ಅನುಕರಿಸಬಹುದು. XML ದತ್ತಸಂಚಯಗಳು ಸಂಬಂಧವಿಲ್ಲದ ದತ್ತಸಂಚಯದಲ್ಲಿ ಪ್ರಚೋದಕಗಳ ಅನುಷ್ಠಾನದ ಉದಾಹರಣೆಯೆಂದರೆ ಸೆಡ್ನಾ ಆಗಿರಬಹುದು, ಇದು XQuery ಆಧಾರಿತ ಪ್ರಚೋದಕಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಸೆಡ್ನಾದಲ್ಲಿನ ಪ್ರಚೋದಕಗಳನ್ನು SQL: 2003 ಪ್ರಚೋದಕಗಳಿಗೆ ಹೋಲುವಂತೆ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಆದರೆ ಸ್ಥಳೀಯವಾಗಿ XML ಪ್ರಶ್ನೆ ಮತ್ತು ನವೀಕರಣ ಭಾಷೆಗಳನ್ನು (XPath, XQuery ಮತ್ತು XML ನವೀಕರಣ ಭಾಷೆ) ಆಧರಿಸಿವೆ. ಡೇಟಾಬೇಸ್ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾದ XML ಡಾಕ್ಯುಮೆಂಟ್ನ ಯಾವುದೇ ನೋಡ್ಗಳಲ್ಲಿ ಸೆಡ್ನಾದಲ್ಲಿ ಪ್ರಚೋದಕವನ್ನು ಹೊಂದಿಸಲಾಗಿದೆ. ಈ ನೋಡ್ಗಳನ್ನು ನವೀಕರಿಸಿದಾಗ, ಪ್ರಚೋದಕವು ತನ್ನ ದೇಹದಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ XQuery ಪ್ರಶ್ನೆಗಳು ಮತ್ತು ನವೀಕರಣಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಈ ವ್ಯಕ್ತಿಯು ಉಲ್ಲೇಖಿಸಿದ ಯಾವುದೇ ಮುಕ್ತ ಹರಾಜು ಇದ್ದರೆ ಈ ಕೆಳಗಿನ ಪ್ರಚೋದಕವು ಪರ್ಸನ್ ನೋಡ್ ಅಳಿಸುವಿಕೆಯನ್ನು ರದ್ದುಗೊಳಿಸುತ್ತದೆಃ ಈ ಕೆಳಗಿನ ಪ್ರಚೋದಕವು ಈ ಕೆಳಗಿನ ಎರಡು ಮುಖ್ಯ ರೀತಿಯ ಪ್ರಚೋದಕಗಳ ಬಗ್ಗೆ ತಿಳಿದಿರಬೇಕು; ಇವು ಸಾಲು ಮತ್ತು ಹೇಳಿಕೆ ಮಟ್ಟದ ಪ್ರಚೋದಕಗಳು; ಇವು ಸಾಲು ಮತ್ತು ಹೇಳಿಕೆ ಮಟ್ಟದ ಪ್ರಚೋದಕಗಳಾಗಿವೆ. ಇವೆರಡರ ನಡುವಿನ ವ್ಯತ್ಯಾಸವೆಂದರೆ ಪ್ರಚೋದಕದೊಳಗಿನ ಕೋಡ್ ಅನ್ನು ಎಷ್ಟು ಬಾರಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಯಾವ ಸಮಯದಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ಒಂದು ನಿರ್ದಿಷ್ಟ ಟೇಬಲ್ಗೆ ಅಪ್ಡೇಟ್ನಲ್ಲಿ ಕರೆ ಮಾಡಲು ನೀವು ಪ್ರಚೋದಕವನ್ನು ಹೊಂದಿದ್ದೀರಿ ಎಂದು ಭಾವಿಸೋಣ. ಅಪ್ ಡೇಟ್ ನಿಂದ ಪ್ರಭಾವಿತವಾಗಿರುವ ಪ್ರತಿ ಸಾಲಿಗೆ ಸಾಲು ಮಟ್ಟದ ಪ್ರಚೋದಕಗಳು ಒಮ್ಮೆ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತವೆ. UPDATE ಆಜ್ಞೆಯಿಂದ ಯಾವುದೇ ಸಾಲುಗಳು ಬಾಧಿತವಾಗಿಲ್ಲದಿದ್ದರೆ, ಪ್ರಚೋದಕವು ಪ್ರಚೋದಕದೊಳಗೆ ಯಾವುದೇ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದಿಲ್ಲ ಎಂಬುದನ್ನು ನೆನಪಿನಲ್ಲಿಡುವುದು ಮುಖ್ಯವಾಗಿದೆ. ಯು. ಪಿ. ಡಿ. ಏ. ಟಿ. ಇ. ಯಿಂದ ಎಷ್ಟು ಸಾಲುಗಳು ಬಾಧಿತವಾಗಿವೆ ಎಂಬುದನ್ನು ಲೆಕ್ಕಿಸದೆ ಹೇಳಿಕೆ ಮಟ್ಟದ ಪ್ರಚೋದಕಗಳನ್ನು ಒಮ್ಮೆ ಕರೆಯಲಾಗುತ್ತದೆ. ಇಲ್ಲಿ ಗಮನಿಸಬೇಕಾದ ಮುಖ್ಯ ಸಂಗತಿಯೆಂದರೆ, UPDATE ಆಜ್ಞೆಯು ಯಾವುದೇ ಸಾಲುಗಳ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರದಿದ್ದರೂ ಸಹ, ಪ್ರಚೋದಕದೊಳಗಿನ ಕೋಡ್ ಅನ್ನು ಇನ್ನೂ ಒಮ್ಮೆ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ಬಿಫೋರ್ ಮತ್ತು ಆಫ್ಟರ್ ಆಯ್ಕೆಗಳನ್ನು ಬಳಸುವುದರಿಂದ ಪ್ರಚೋದಕವನ್ನು ಯಾವಾಗ ಕರೆಯಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ. ನೀವು ಒಂದು ನಿರ್ದಿಷ್ಟ ಟೇಬಲ್ಗೆ ಇನ್ಸಾರ್ಟ್ನಲ್ಲಿ ಕರೆಯಲಾಗುವ ಪ್ರಚೋದಕವನ್ನು ಹೊಂದಿದ್ದೀರಿ ಎಂದು ಭಾವಿಸೋಣ. ನಿಮ್ಮ ಪ್ರಚೋದಕವು BEFORE ಆಯ್ಕೆಯನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ, ಪ್ರಚೋದಕದೊಳಗಿನ ಕೋಡ್ ಅನ್ನು ಟೇಬಲ್ಗೆ INSERT ಬರುವ ಮೊದಲು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. INSERT ನ ಇನ್ಪುಟ್ ಮೌಲ್ಯಗಳನ್ನು ಪರಿಶೀಲಿಸುವುದು ಅಥವಾ ಅದಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಮೌಲ್ಯಗಳನ್ನು ಮಾರ್ಪಡಿಸುವುದು BEFORE ಪ್ರಚೋದಕದ ಸಾಮಾನ್ಯ ಬಳಕೆಯಾಗಿದೆ. ಈಗ ನಾವು ಅದರ ಬದಲಿಗೆ ಆಫ್ಟರ್ ಅನ್ನು ಬಳಸುವ ಪ್ರಚೋದಕವನ್ನು ಹೊಂದಿದ್ದೇವೆ ಎಂದು ಹೇಳೋಣ. ಟೇಬಲ್ಗೆ INSERT ಸಂಭವಿಸಿದ ನಂತರ ಪ್ರಚೋದಕದೊಳಗಿನ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ಈ ಪ್ರಚೋದಕದ ಬಳಕೆಯ ಒಂದು ಉದಾಹರಣೆಯೆಂದರೆ ಡೇಟಾಬೇಸ್ನಲ್ಲಿ ಯಾರು ಒಳಸೇರಿಸಿದ್ದಾರೆ ಎಂಬುದರ ಲೆಕ್ಕಪರಿಶೋಧನೆಯ ಇತಿಹಾಸವನ್ನು ರಚಿಸುವುದು, ಮಾಡಿದ ಬದಲಾವಣೆಗಳ ಮೇಲೆ ನಿಗಾ ಇಡುವುದು. ಈ ಆಯ್ಕೆಗಳನ್ನು ಬಳಸುವಾಗ ನೀವು ಕೆಲವು ವಿಷಯಗಳನ್ನು ನೆನಪಿನಲ್ಲಿಟ್ಟುಕೊಳ್ಳಬೇಕು. ಬಿಫೋರ್ ಆಯ್ಕೆಯು ಟೇಬಲ್ಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುವುದಿಲ್ಲ, ಅದಕ್ಕಾಗಿಯೇ ಇನ್ಪುಟ್ ಊರ್ಜಿತಗೊಳಿಸುವಿಕೆಯು ಪ್ರಾಯೋಗಿಕ ಬಳಕೆಯಾಗಿದೆ. ಆಫ್ಟರ್ ಪ್ರಚೋದಕಗಳನ್ನು ಬಳಸುವುದರಿಂದ ಲೆಕ್ಕಪರಿಶೋಧನೆಯ ಇತಿಹಾಸದ ಕೋಷ್ಟಕದಲ್ಲಿ ಸೇರಿಸುವಂತಹ ಕೋಷ್ಟಕಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ. ಅದು ಹೇಳಿಕೆಯೇ ಅಥವಾ ಸಾಲು ಮಟ್ಟವೇ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು ಪ್ರಚೋದಕವನ್ನು ರಚಿಸುವಾಗ ಸರಳವಾಗಿ ಸಾಲು ಮಟ್ಟಕ್ಕೆ ಪ್ರತಿ ROW ಷರತ್ತನ್ನು ಸೇರಿಸಿ, ಅಥವಾ ಹೇಳಿಕೆ ಮಟ್ಟಕ್ಕೆ ಷರತ್ತನ್ನು ಬಿಟ್ಟುಬಿಡಿ. ನಿಮ್ಮ ಪ್ರಚೋದಕದೊಳಗೆ ಹೆಚ್ಚುವರಿ INSERT/UPDATE/DELETE ಆಜ್ಞೆಗಳನ್ನು ಬಳಸುವ ಬಗ್ಗೆ ಜಾಗರೂಕರಾಗಿರಿ, ಏಕೆಂದರೆ ಪ್ರಚೋದಕ ಪುನರಾವರ್ತನೆ ಸಾಧ್ಯವಿದೆ, ಇದು ಅನಗತ್ಯ ನಡವಳಿಕೆಗೆ ಕಾರಣವಾಗುತ್ತದೆ. ಕೆಳಗಿನ ಉದಾಹರಣೆಗಳಲ್ಲಿ ಪ್ರತಿ ಪ್ರಚೋದಕವು ಬೇರೆ ಕೋಷ್ಟಕವನ್ನು ಮಾರ್ಪಡಿಸುತ್ತಿದೆ, ಮಾರ್ಪಡಿಸಲಾಗುತ್ತಿರುವುದನ್ನು ನೋಡುವ ಮೂಲಕ ನೀವು ವಿವಿಧ ಪ್ರಚೋದಕ ಪ್ರಕಾರಗಳನ್ನು ಬಳಸುವಾಗ ಕೆಲವು ಸಾಮಾನ್ಯ ಅನ್ವಯಿಕೆಗಳನ್ನು ನೋಡಬಹುದು. ಈ ಕೆಳಗಿನವು ಸಾಲು ಮಟ್ಟದ ಪ್ರಚೋದಕದ ಒರಾಕಲ್ ವಾಕ್ಯರಚನೆಯ ಉದಾಹರಣೆಯಾಗಿದೆ, ಇದನ್ನು ಪ್ರತಿ ROW ಬಾಧಿತರಿಗಾಗಿ ನವೀಕರಣದ ನಂತರ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಫೋನ್ ಪುಸ್ತಕ ದತ್ತಸಂಚಯಕ್ಕೆ ನವೀಕರಣ ಮಾಡುವಾಗ ಈ ಪ್ರಚೋದಕವನ್ನು ಕರೆಯಲಾಗುತ್ತದೆ. ಪ್ರಚೋದಕವನ್ನು ಕರೆದಾಗ ಅದು ಫೋನ್ _ ಬುಕ್ _ ಆಡಿಟ್ ಎಂಬ ಪ್ರತ್ಯೇಕ ಟೇಬಲ್ಗೆ ನಮೂದನ್ನು ಸೇರಿಸುತ್ತದೆ. ಅನುಕ್ರಮಗಳಂತಹ ಸ್ಕೀಮಾ ವಸ್ತುಗಳ ಲಾಭವನ್ನು ಪಡೆಯಲು ಸಾಧ್ಯವಾಗುವ ಪ್ರಚೋದಕಗಳನ್ನು ಸಹ ಗಮನಿಸಿ, ಈ ಉದಾಹರಣೆಯಲ್ಲಿ ಫೋನ್ _ ಬುಕ್ _ ಆಡಿಟ್ ಕೋಷ್ಟಕದಲ್ಲಿ ವಿಶಿಷ್ಟವಾದ ಪ್ರಾಥಮಿಕ ಕೀಲಿಗಳನ್ನು ರಚಿಸಲು audit_id_sequence.nexVal ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಫೋನ್ _ ಬುಕ್ _ ಆಡಿಟ್ ಅನ್ನು ರಚಿಸಿ ಅಥವಾ ಪುನರಾವರ್ತಿಸಿ (ಆಡಿಟ್ _ ಐಡಿ, ಆಡಿಟ್ _ ಚೇಂಜ್, ಆಡಿಟ್ _ ಎಲ್ _ ನೇಮ್, ಆಡಿಟ್ _ ಎಫ್ _ ನೇಮ್, ಆಡಿಟ್ _ ಓಲ್ಡ್ _ ಫೋನ್ _ ನಂಬರ್, ಆಡಿಟ್ _ ನ್ಯೂ _ ಫೋನ್ _ ನಂಬರ್, ಆಡಿಟ್ _ ಡೇಟ್) ಮೌಲ್ಯಗಳು (audit_id_sequence.nextVal, 'ಅಪ್ಡೇಟ್',: OLD.last_name,: OLD.first_name,: OLD.phone_number,: NEW.phone_number, ಸಿಸ್ಟೇಟ್); ಮುಕ್ತಾಯ; ಈಗ 'ಜೋನ್ಸ್' ಎಂಬ ಕೊನೆಯ ಹೆಸರಿನ ಜನರಿಗಾಗಿ ಫೋನ್ _ ಬುಕ್ ಟೇಬಲ್ನಲ್ಲಿ ಅಪ್ಡೇಟ್ ಅನ್ನು ಕರೆಯುವುದು. ಫೋನ್ _ ಬುಕ್ ಸೆಟ್ ಫೋನ್ _ ನಂಬರ್ ಅನ್ನು ನವೀಕರಿಸಿ = '111-111-1111' ಕೊನೆಯ ಹೆಸರು = 'ಜೋನ್ಸ್'; ಫೋನ್ _ ನಂಬರ್ _ ಆಡಿಟ್ ಟೇಬಲ್ ಈಗ ಎರಡು ನಮೂದುಗಳನ್ನು ಹೊಂದಿದೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ. ದತ್ತಸಂಚಯವು 'ಜೋನ್ಸ್' ಎಂಬ ಕೊನೆಯ ಹೆಸರಿನೊಂದಿಗೆ ಎರಡು ನಮೂದುಗಳನ್ನು ಹೊಂದಿರುವುದು ಇದಕ್ಕೆ ಕಾರಣ. ನವೀಕರಣವು ಎರಡು ಪ್ರತ್ಯೇಕ ಸಾಲು ಮೌಲ್ಯಗಳನ್ನು ಮಾರ್ಪಡಿಸಿದ್ದರಿಂದ, ರಚಿಸಲಾದ ಪ್ರಚೋದಕವನ್ನು ಎರಡು ಬಾರಿ ಕರೆಯಲಾಯಿತು; ಪ್ರತಿ ಮಾರ್ಪಾಡಿನ ನಂತರ ಒಮ್ಮೆ. ಆಫ್ಟರ್-ಸ್ಟೇಟ್ಮೆಂಟ್-ಲೆವೆಲ್ ಟ್ರಿಗರ್ ಒರಾಕಲ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಸ್ಟೇಟ್ಮೆಂಟ್ ಟ್ರಿಗರ್ ಅನ್ನು ಫೋನ್ _ ಬುಕ್ ಟೇಬಲ್ಗೆ ಅಪ್ಡೇಟ್ ಮಾಡಿದ ನಂತರ ಕರೆಯಲಾಗುತ್ತದೆ. ಪ್ರಚೋದಕವನ್ನು ಕರೆದಾಗ ಅದು ಫೋನ್ _ ಬುಕ್ _ ಎಡಿಟ್ _ ಹಿಸ್ಟರಿ ಟೇಬಲ್ ಅನ್ನು ರಚಿಸಿ ಅಥವಾ ಪುನರಾವರ್ತಿಸಿ ಫೋನ್ _ ಬುಕ್ _ ಹಿಸ್ಟರಿಯನ್ನು ಫೋನ್ _ ಬುಕ್ ಅನ್ನು ನವೀಕರಿಸಿದ ನಂತರ ಪ್ರಾರಂಭಿಸಿ ಫೋನ್ _ ಬುಕ್ _ ಎಡಿಟ್ _ ಹಿಸ್ಟರಿ (ಆಡಿಟ್ _ ಹಿಸ್ಟರಿ _ ಐಡಿ, ಬಳಕೆದಾರಹೆಸರು, ಮಾರ್ಪಾಡು, ಎಡಿಟ್ _ ಡೇಟ್) ಮೌಲ್ಯಗಳು (audit_history_id_sequence.nextVal, ಬಳಕೆದಾರ, 'ಅಪ್ಡೇಟ್', ಸಿಸ್ಟೇಟ್); ಮುಕ್ತಾಯ; ಈಗ ಮೇಲಿನ ಉದಾಹರಣೆಯಂತೆ ನಿಖರವಾಗಿ ಅದೇ ನವೀಕರಣವನ್ನು ಮಾಡುತ್ತಿದೆ, ಆದರೆ ಈ ಬಾರಿ ಹೇಳಿಕೆ ಮಟ್ಟದ ಪ್ರಚೋದಕದೊಂದಿಗೆ. ಅಪ್ಡೇಟ್ ಫೋನ್ _ ಬುಕ್ ಸೆಟ್ ಫೋನ್ _ ನಂಬರ್ = '111-111-1111' WHERE ಲಾಸ್ಟ್ _ ನೇಮ್ = 'ಜೋನ್ಸ್'; ನವೀಕರಣವು ಎರಡು ಸಾಲುಗಳನ್ನು ಬದಲಾಯಿಸಿದ್ದರೂ ಸಹ, ಪ್ರಚೋದಕವನ್ನು ಒಮ್ಮೆ ಮಾತ್ರ ಕರೆಯಲಾಗಿದೆ ಎಂದು ಫಲಿತಾಂಶವು ತೋರಿಸುತ್ತದೆ. ಪ್ರತಿ-ಸಾಲು-ಮಟ್ಟದ ಪ್ರಚೋದಕಕ್ಕಿಂತ ಮೊದಲು ಈ ಉದಾಹರಣೆಯು ಪ್ರತಿ ROW ಪ್ರಚೋದಕಕ್ಕಿಂತ ಮೊದಲು ಪ್ರದರ್ಶಿಸುತ್ತದೆ, ಅದು ಯಾವಾಗ ಷರತ್ತುಬದ್ಧವಾದುದನ್ನು ಬಳಸಿಕೊಂಡು INSERT ಅನ್ನು ಮಾರ್ಪಡಿಸುತ್ತದೆ. ಕೊನೆಯ ಹೆಸರು 10 ಅಕ್ಷರಗಳಿಗಿಂತ ದೊಡ್ಡದಾಗಿದ್ದರೆ, ಎಸ್. ಯು. ಬಿ. ಎಸ್. ಟಿ. ಆರ್ ಕಾರ್ಯವನ್ನು ಬಳಸಿಕೊಂಡು ನಾವು ಕೊನೆಯ ಹೆಸರಿನ ಕಾಲಮ್ನ ಮೌಲ್ಯವನ್ನು ಸಂಕ್ಷೇಪಣಕ್ಕೆ ಬದಲಾಯಿಸುತ್ತೇವೆ. (ಉದ್ದ (new.last_name)> 10) ಯಾವಾಗ ಪ್ರಾರಂಭಿಸಿಃ new.last_name: = ಸಬ್ಸ್ಟರ್ (: new.last_name, 0,1); ಮುಕ್ತಾಯ; ಈಗ ದೊಡ್ಡ ಹೆಸರಿನ ಯಾರೊಬ್ಬರ INSERT ಅನ್ನು ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತಿದೆ. INSERT INTO ಫೋನ್ _ ಬುಕ್ ಮೌಲ್ಯಗಳು (6, 'ವೆರಿವೆರಿಲಾಂಗ್ಲಾಸ್ಟ್ ನೇಮ್', 'ಎರಿನ್', 'ಮಿನ್ನಿಯಾಪೋಲಿಸ್', 'ಎಂಎನ್', '989 ಯೂನಿವರ್ಸಿಟಿ ಡ್ರೈವ್', '123-222-4456', 55408, ಟುಡೇಟ್ ('11/21/1991', 'ಎಂಎಂ/ಡಿಡಿ/ವೈವೈವೈವೈ')); ಪ್ರಚೋದಕವು ಮೇಲಿನ ಫಲಿತಾಂಶದ ಪ್ರಕಾರ ಕಾರ್ಯನಿರ್ವಹಿಸಿತು, ಅದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಮೊದಲು INSERT ಮೌಲ್ಯವನ್ನು ಮಾರ್ಪಡಿಸಿತು. ಡೇಟಾಬೇಸ್ ನಿರ್ಬಂಧಗಳನ್ನು ಜಾರಿಗೊಳಿಸುವಾಗ ಬಿಫೋರ್ ಸ್ಟೇಟ್ಮೆಂಟ್ ಪ್ರಚೋದಕವನ್ನು ಬಳಸುವುದು ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಾಗಿದೆ. ಟೇಬಲ್ ಫೋನ್ ಪುಸ್ತಕದಲ್ಲಿ "ಸೋಮ್ಯೂಸರ್" ಎಂಬ ಹೆಸರಿನ ವ್ಯಕ್ತಿಯ ಮೇಲೆ ನಿರ್ಬಂಧವನ್ನು ಹೇಗೆ ಜಾರಿಗೊಳಿಸಬೇಕು ಎಂಬುದನ್ನು ಈ ಉದಾಹರಣೆಯು ತೋರಿಸುತ್ತದೆ. SOMEUSER.phone_book ಪ್ರಾರಂಭಿಸಿ ರೈಸ್ _ ಅಪ್ಲಿಕೇಶನ್ _ ದೋಷ (num =>-20050, msg => 'ದೋಷ ಸಂದೇಶವು ಇಲ್ಲಿಗೆ ಹೋಗುತ್ತದೆ. '); ಮುಕ್ತಾಯ; ಈಗ, ಯಾವುದೇ INSERT ಅನ್ನು ಪ್ರಯತ್ನಿಸಿದ ನಂತರ "SOMEUSER" ಅನ್ನು ಲಾಗ್ ಇನ್ ಮಾಡಿದಾಗ ಈ ದೋಷ ಸಂದೇಶವು ತೋರಿಸುತ್ತದೆಃ SQL ದೋಷಃ ORA-20050: ದೋಷ ಸಂದೇಶವು ಇಲ್ಲಿಗೆ ಹೋಗುತ್ತದೆ. ಈ ರೀತಿಯ ಕಸ್ಟಮ್ ದೋಷಗಳು ಸಂಖ್ಯೆ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಏನೆಂದು ವ್ಯಾಖ್ಯಾನಿಸಬಹುದು ಎಂಬುದರ ಮೇಲೆ ನಿರ್ಬಂಧವನ್ನು ಹೊಂದಿವೆ. ಹಲವಾರು ಇತರ ಪೂರ್ವನಿರ್ಧರಿತ ದೋಷಗಳ ಕಾರಣದಿಂದಾಗಿ ಈ ವೇರಿಯೇಬಲ್-2000 ರಿಂದ-209 ರ ವ್ಯಾಪ್ತಿಯಲ್ಲಿರಬೇಕು. ಉಲ್ಲೇಖಗಳು ಬಾಹ್ಯ ಕೊಂಡಿಗಳು ಮೈಕ್ರೋಸಾಫ್ಟ್ ಎಸ್. ಕ್ಯು. ಎಲ್. ಸರ್ವರ್ ಡ್ರಾಪ್ ಟ್ರಿಗರ್ ಮೈ. ಎಸ್. ಕ್ಯು. ಎಲ್. ದತ್ತಸಂಚಯವು ಮೈ. ಎಸ್. ಕ್ಯು. ಎಲ್. ಡಿ. ಬಿ. ಯನ್ನು ಪ್ರಚೋದಿಸುತ್ತದೆ ಟ್ರಿಗ್ಗರ್ಗಳನ್ನು ಡಿ. ಬಿ. 2 ರಚಿಸಿ ಟ್ರಿಗ್ಗರ್ ಹೇಳಿಕೆ ಒರಾಕಲ್ ಟ್ರಿಗ್ಗರ್ ಅನ್ನು ರಚಿಸಿ ಪೋಸ್ಟ್ಗ್ರೆ. ಎಸ್. ಕ್ಯು. ಎಲ್. ಟ್ರಿಗ್ಗರ್ ಅನ್ನು ರಚಿಸಿ ಒರಾಕಲ್ ಮ್ಯಟೇಟಿಂಗ್ ಟೇಬಲ್ ಸಮಸ್ಯೆಗಳನ್ನು ಅಳಿಸಿ ಕ್ಯಾಸ್ಕೇಡ್ ಎಸ್. ಕ್ಯು. ಎಲ್. ಐ. ಟಿ ಪ್ರಶ್ನೆಯ ಭಾಷೆಯೊಂದಿಗೆಃ ಟ್ರಿಗ್ಗರ್ ಡೇಟಾಬೇಸ್ ನಿರ್ವಹಣಾ ವ್ಯವಸ್ಥೆಗಳ ಮೇಲೆ ಟ್ರಿಗ್ಗರ್ ಒರಾಕಲ್ನ ದಾಖಲೆಯನ್ನು ರಚಿಸಿ (ಕಂಪ್ಯೂಟಿಂಗ್) ಘಟನೆಗಳು (ಕಂಪ್ಯೂಟಿಂಗ್) ಉದಾಹರಣೆ ಎಸ್. ಕ್ಯು. ಎಲ್ ಕೋಡ್ ಹೊಂದಿರುವ ಲೇಖನಗಳು