{"id":25544,"date":"2024-03-16T05:10:27","date_gmt":"2024-03-16T05:10:27","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/"},"modified":"2024-03-22T06:25:50","modified_gmt":"2024-03-22T06:25:50","slug":"detailed-explanation-of-the-usage-of-oracle-triggers","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/","title":{"rendered":"Detailed explanation of the usage of Oracle triggers"},"content":{"rendered":"<p>An Oracle trigger is a stored procedure that automatically executes when specific database operations (such as inserts, updates, deletes) occur. Triggers can be used to enforce data integrity constraints, automatically update related data, log information, and perform other functions.<\/p>\n<p>Here is an example of how to use an Oracle trigger:<\/p>\n<p>Create a table:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">CREATE<\/span> <span class=\"hljs-keyword\">TABLE<\/span> employee (\r\n  id NUMBER(<span class=\"hljs-number\">10<\/span>) <span class=\"hljs-keyword\">PRIMARY<\/span> KEY,\r\n  name VARCHAR2(<span class=\"hljs-number\">100<\/span>),\r\n  salary NUMBER(<span class=\"hljs-number\">10<\/span>, <span class=\"hljs-number\">2<\/span>),\r\n  commission NUMBER(<span class=\"hljs-number\">10<\/span>, <span class=\"hljs-number\">2<\/span>),\r\n  total_salary NUMBER(<span class=\"hljs-number\">10<\/span>, <span class=\"hljs-number\">2<\/span>)\r\n);\r\n<\/code><\/pre>\n<p>Create a trigger to calculate the total salary.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">CREATE<\/span> <span class=\"hljs-keyword\">OR<\/span> REPLACE <span class=\"hljs-keyword\">TRIGGER<\/span> calculate_total_salary\r\nBEFORE <span class=\"hljs-keyword\">INSERT<\/span> <span class=\"hljs-keyword\">OR<\/span> <span class=\"hljs-keyword\">UPDATE<\/span> <span class=\"hljs-keyword\">OF<\/span> salary, commission <span class=\"hljs-keyword\">ON<\/span> employee\r\n<span class=\"hljs-keyword\">FOR<\/span> <span class=\"hljs-keyword\">EACH<\/span> <span class=\"hljs-type\">ROW<\/span>\r\n<span class=\"hljs-keyword\">BEGIN<\/span>\r\n  :NEW.total_salary :<span class=\"hljs-operator\">=<\/span> :NEW.salary <span class=\"hljs-operator\">+<\/span> :NEW.commission;\r\n<span class=\"hljs-keyword\">END<\/span>;\r\n<span class=\"hljs-operator\">\/<\/span>\r\n<\/code><\/pre>\n<p>In this trigger, the BEFORE keyword indicates that the trigger will execute before the operation being triggered, the INSERT and UPDATE keywords specify that the trigger will be activated during insert and update operations. The OF keyword specifies that the trigger is concerned with the columns of salary and commission. The FOR EACH ROW keyword indicates that the trigger&#8217;s code will be executed for each row of data.<\/p>\n<p>The trigger code block is written in the PL\/SQL language, where :NEW is a special keyword that represents the row to be inserted or updated.<\/p>\n<p>Now, when data is inserted or updated in the employee table, triggers automatically calculate the total salary and store the result in the total_salary column.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">INSERT<\/span> <span class=\"hljs-keyword\">INTO<\/span> employee (id, name, salary, commission) <span class=\"hljs-keyword\">VALUES<\/span> (<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">'John Doe'<\/span>, <span class=\"hljs-number\">1000<\/span>, <span class=\"hljs-number\">200<\/span>);\r\n<span class=\"hljs-keyword\">UPDATE<\/span> employee <span class=\"hljs-keyword\">SET<\/span> salary <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">1500<\/span> <span class=\"hljs-keyword\">WHERE<\/span> id <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">1<\/span>;\r\n<\/code><\/pre>\n<p>You can verify the trigger&#8217;s effect by querying the table.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">SELECT<\/span> <span class=\"hljs-operator\">*<\/span> <span class=\"hljs-keyword\">FROM<\/span> employee;\r\n\r\nID  NAME      SALARY  COMMISSION  TOTAL_SALARY\r\n<span class=\"hljs-comment\">--  --------  ------  ----------  ------------<\/span>\r\n<span class=\"hljs-number\">1<\/span>   John Doe  <span class=\"hljs-number\">1500<\/span>    <span class=\"hljs-number\">200<\/span>         <span class=\"hljs-number\">1700<\/span>\r\n<\/code><\/pre>\n<p>From the examples above, it can be seen that triggers can execute code before or after data operations, allowing access to and modification of the data that will be operated on. This makes triggers a powerful tool that can be used to implement complex business logic.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>An Oracle trigger is a stored procedure that automatically executes when specific database operations (such as inserts, updates, deletes) occur. Triggers can be used to enforce data integrity constraints, automatically update related data, log information, and perform other functions. Here is an example of how to use an Oracle trigger: Create a table: CREATE TABLE [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-25544","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Detailed explanation of the usage of Oracle triggers - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Detailed explanation of the usage of Oracle triggers\" \/>\n<meta property=\"og:description\" content=\"An Oracle trigger is a stored procedure that automatically executes when specific database operations (such as inserts, updates, deletes) occur. Triggers can be used to enforce data integrity constraints, automatically update related data, log information, and perform other functions. Here is an example of how to use an Oracle trigger: Create a table: CREATE TABLE [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-16T05:10:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T06:25:50+00:00\" \/>\n<meta name=\"author\" content=\"William Carter\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"William Carter\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/\"},\"author\":{\"name\":\"William Carter\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0\"},\"headline\":\"Detailed explanation of the usage of Oracle triggers\",\"datePublished\":\"2024-03-16T05:10:27+00:00\",\"dateModified\":\"2024-03-22T06:25:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/\"},\"wordCount\":247,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/\",\"name\":\"Detailed explanation of the usage of Oracle triggers - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T05:10:27+00:00\",\"dateModified\":\"2024-03-22T06:25:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Detailed explanation of the usage of Oracle triggers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0\",\"name\":\"William Carter\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g\",\"caption\":\"William Carter\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/williamcarter\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Detailed explanation of the usage of Oracle triggers - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/","og_locale":"en_US","og_type":"article","og_title":"Detailed explanation of the usage of Oracle triggers","og_description":"An Oracle trigger is a stored procedure that automatically executes when specific database operations (such as inserts, updates, deletes) occur. Triggers can be used to enforce data integrity constraints, automatically update related data, log information, and perform other functions. Here is an example of how to use an Oracle trigger: Create a table: CREATE TABLE [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T05:10:27+00:00","article_modified_time":"2024-03-22T06:25:50+00:00","author":"William Carter","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"William Carter","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/"},"author":{"name":"William Carter","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0"},"headline":"Detailed explanation of the usage of Oracle triggers","datePublished":"2024-03-16T05:10:27+00:00","dateModified":"2024-03-22T06:25:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/"},"wordCount":247,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/","url":"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/","name":"Detailed explanation of the usage of Oracle triggers - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T05:10:27+00:00","dateModified":"2024-03-22T06:25:50+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/detailed-explanation-of-the-usage-of-oracle-triggers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Detailed explanation of the usage of Oracle triggers"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0","name":"William Carter","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g","caption":"William Carter"},"url":"https:\/\/www.silicloud.com\/blog\/author\/williamcarter\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/25544","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=25544"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/25544\/revisions"}],"predecessor-version":[{"id":59655,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/25544\/revisions\/59655"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=25544"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=25544"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=25544"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}