{"id":317,"date":"2018-12-13T08:47:46","date_gmt":"2018-12-13T08:47:46","guid":{"rendered":"https:\/\/barkhane.com\/sql\/2018\/12\/13\/sql-transactions\/"},"modified":"2024-03-03T17:52:10","modified_gmt":"2024-03-03T17:52:10","slug":"sql-transactions","status":"publish","type":"post","link":"https:\/\/barkhane.com\/sql\/sql-transactions\/","title":{"rendered":"SQL Transactions"},"content":{"rendered":"<p>A SQL\u00a0 transaction is a unit of work that is performed against a database. SQL Transactions are units or sequences of work accomplished in a logical order, whether in a manual fashion by a user or automatically by some sort of a <a href=\"https:\/\/barkhane.com\/sql\/what-is-database\/\">database<\/a> program.<\/p>\n<p>A transaction is the propagation of one or more changes to the database. For example, if you are creating a record or updating a record or deleting a record from the table, then you are performing a transaction on that table. It is important to control these SQL Transactions to ensure the data integrity and to handle database errors.<\/p>\n<p>Practically, you will club many SQL queries into a group and you will execute all of them together as a part of a transaction.<\/p>\n<h2>Properties of Transactions<\/h2>\n<p>Transactions have the following four standard properties, usually referred to by the acronym\u00a0<b>ACID<\/b>.<\/p>\n<ul class=\"list\">\n<li><b>Atomicity<\/b>\u00a0\u2212 ensures that all operations within the work unit are completed successfully. Otherwise, the transaction is aborted at the point of failure and all the previous operations are rolled back to their former state.<\/li>\n<li><b>Consistency<\/b>\u00a0\u2212 ensures that the database properly changes states upon a successfully committed transaction.<\/li>\n<li><b>Isolation<\/b>\u00a0\u2212 enables transactions to operate independently of and transparent to each other.<\/li>\n<li><b>Durability<\/b>\u00a0\u2212 ensures that the result or effect of a committed transaction persists in case of a system failure.<\/li>\n<\/ul>\n<h3>Transaction Control<\/h3>\n<p>The following commands are used to control transactions.<\/p>\n<ul class=\"list\">\n<li><b>COMMIT<\/b>\u00a0\u2212 to save the changes.<\/li>\n<li><b>ROLLBACK<\/b>\u00a0\u2212 to roll back the changes.<\/li>\n<li><b>SAVEPOINT<\/b>\u00a0\u2212 creates points within the groups of transactions in which to ROLLBACK.<\/li>\n<li><b>SET TRANSACTION<\/b>\u00a0\u2212 Places a name on a transaction.<\/li>\n<\/ul>\n<h2>Transactional Control Commands<\/h2>\n<p>Transactional control commands are only used with the\u00a0<b>DML Commands<\/b>\u00a0such as &#8211; INSERT, UPDATE and DELETE only. They cannot be used while creating tables or dropping them because these operations are automatically committed in the database.<\/p>\n<h3>The COMMIT Command<\/h3>\n<p>The COMMIT command is the transactional command used to save changes invoked by a transaction to the database.<\/p>\n<p>The COMMIT command is the transactional command used to save changes invoked by a transaction to the database. The COMMIT command saves all the transactions to the database since the last COMMIT or ROLLBACK command.<\/p>\n<p>The syntax for the COMMIT command is as follows.<\/p>\n<pre class=\"result notranslate\">COMMIT;\n<\/pre>\n<p><b>Example<\/b><\/p>\n<p>Consider the CUSTOMERS table having the following records \u2212<\/p>\n<pre class=\"prettyprint notranslate prettyprinted\"><span class=\"pun\">+----+----------+-----+-----------+----------+<\/span>\n<span class=\"pun\">|<\/span><span class=\"pln\"> ID <\/span><span class=\"pun\">|<\/span><span class=\"pln\"> NAME     <\/span><span class=\"pun\">|<\/span><span class=\"pln\"> AGE <\/span><span class=\"pun\">|<\/span><span class=\"pln\"> ADDRESS   <\/span><span class=\"pun\">|<\/span><span class=\"pln\"> SALARY   <\/span><span class=\"pun\">|<\/span>\n<span class=\"pun\">+----+----------+-----+-----------+----------+<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">1<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Ramesh<\/span>   <span class=\"pun\">|<\/span>  <span class=\"lit\">32<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Ahmedabad<\/span> <span class=\"pun\">|<\/span>  <span class=\"lit\">2000.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">2<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Khilan<\/span>   <span class=\"pun\">|<\/span>  <span class=\"lit\">25<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Delhi<\/span>     <span class=\"pun\">|<\/span>  <span class=\"lit\">1500.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">3<\/span> <span class=\"pun\">|<\/span><span class=\"pln\"> kaushik  <\/span><span class=\"pun\">|<\/span>  <span class=\"lit\">23<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Kota<\/span>      <span class=\"pun\">|<\/span>  <span class=\"lit\">2000.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">4<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Chaitali<\/span> <span class=\"pun\">|<\/span>  <span class=\"lit\">25<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Mumbai<\/span>    <span class=\"pun\">|<\/span>  <span class=\"lit\">6500.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">5<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Hardik<\/span>   <span class=\"pun\">|<\/span>  <span class=\"lit\">27<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Bhopal<\/span>    <span class=\"pun\">|<\/span>  <span class=\"lit\">8500.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">6<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Komal<\/span>    <span class=\"pun\">|<\/span>  <span class=\"lit\">22<\/span> <span class=\"pun\">|<\/span><span class=\"pln\"> MP        <\/span><span class=\"pun\">|<\/span>  <span class=\"lit\">4500.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">7<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Muffy<\/span>    <span class=\"pun\">|<\/span>  <span class=\"lit\">24<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Indore<\/span>    <span class=\"pun\">|<\/span> <span class=\"lit\">10000.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">+----+----------+-----+-----------+----------+<\/span><\/pre>\n<p>Following is an example which would delete those records from the table which have age = 25 and then COMMIT the changes in the database.<\/p>\n<pre class=\"prettyprint notranslate prettyprinted\"><span class=\"pln\">SQL<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> DELETE FROM CUSTOMERS\n   WHERE AGE <\/span><span class=\"pun\">=<\/span> <span class=\"lit\">25<\/span><span class=\"pun\">;<\/span><span class=\"pln\">\nSQL<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> COMMIT<\/span><span class=\"pun\">;<\/span><\/pre>\n<p>Thus, two rows from the table would be deleted and the SELECT statement would produce the following result.<\/p>\n<pre class=\"result notranslate\">+----+----------+-----+-----------+----------+\n| ID | NAME     | AGE | ADDRESS   | SALARY   |\n+----+----------+-----+-----------+----------+\n|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |\n|  3 | kaushik  |  23 | Kota      |  2000.00 |\n|  5 | Hardik   |  27 | Bhopal    |  8500.00 |\n|  6 | Komal    |  22 | MP        |  4500.00 |\n|  7 | Muffy    |  24 | Indore    | 10000.00 |\n+----+----------+-----+-----------+----------+\n<\/pre>\n<h3>The ROLLBACK Command<\/h3>\n<p>The ROLLBACK command is the transactional command used to undo transactions that have not already been saved to the database. This command can only be used to undo transactions since the last COMMIT or ROLLBACK command was issued.<\/p>\n<p>The syntax for a ROLLBACK command is as follows \u2212<\/p>\n<pre class=\"result notranslate\">ROLLBACK;\n<\/pre>\n<p><b>Example<\/b><\/p>\n<p>Consider the CUSTOMERS table having the following records \u2212<\/p>\n<pre class=\"prettyprint notranslate prettyprinted\"><span class=\"pun\">+----+----------+-----+-----------+----------+<\/span>\n<span class=\"pun\">|<\/span><span class=\"pln\"> ID <\/span><span class=\"pun\">|<\/span><span class=\"pln\"> NAME     <\/span><span class=\"pun\">|<\/span><span class=\"pln\"> AGE <\/span><span class=\"pun\">|<\/span><span class=\"pln\"> ADDRESS   <\/span><span class=\"pun\">|<\/span><span class=\"pln\"> SALARY   <\/span><span class=\"pun\">|<\/span>\n<span class=\"pun\">+----+----------+-----+-----------+----------+<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">1<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Ramesh<\/span>   <span class=\"pun\">|<\/span>  <span class=\"lit\">32<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Ahmedabad<\/span> <span class=\"pun\">|<\/span>  <span class=\"lit\">2000.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">2<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Khilan<\/span>   <span class=\"pun\">|<\/span>  <span class=\"lit\">25<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Delhi<\/span>     <span class=\"pun\">|<\/span>  <span class=\"lit\">1500.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">3<\/span> <span class=\"pun\">|<\/span><span class=\"pln\"> kaushik  <\/span><span class=\"pun\">|<\/span>  <span class=\"lit\">23<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Kota<\/span>      <span class=\"pun\">|<\/span>  <span class=\"lit\">2000.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">4<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Chaitali<\/span> <span class=\"pun\">|<\/span>  <span class=\"lit\">25<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Mumbai<\/span>    <span class=\"pun\">|<\/span>  <span class=\"lit\">6500.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">5<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Hardik<\/span>   <span class=\"pun\">|<\/span>  <span class=\"lit\">27<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Bhopal<\/span>    <span class=\"pun\">|<\/span>  <span class=\"lit\">8500.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">6<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Komal<\/span>    <span class=\"pun\">|<\/span>  <span class=\"lit\">22<\/span> <span class=\"pun\">|<\/span><span class=\"pln\"> MP        <\/span><span class=\"pun\">|<\/span>  <span class=\"lit\">4500.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">7<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Muffy<\/span>    <span class=\"pun\">|<\/span>  <span class=\"lit\">24<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Indore<\/span>    <span class=\"pun\">|<\/span> <span class=\"lit\">10000.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">+----+----------+-----+-----------+----------+<\/span><\/pre>\n<p>Following is an example, which would delete those records from the table which have the age = 25 and then ROLLBACK the changes in the database.<\/p>\n<pre class=\"prettyprint notranslate prettyprinted\"><span class=\"pln\">SQL<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> DELETE FROM CUSTOMERS\n   WHERE AGE <\/span><span class=\"pun\">=<\/span> <span class=\"lit\">25<\/span><span class=\"pun\">;<\/span><span class=\"pln\">\nSQL<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> ROLLBACK<\/span><span class=\"pun\">;<\/span><\/pre>\n<p>Thus, the delete operation would not impact the table and the SELECT statement would produce the following result.<\/p>\n<pre class=\"result notranslate\">+----+----------+-----+-----------+----------+\n| ID | NAME     | AGE | ADDRESS   | SALARY   |\n+----+----------+-----+-----------+----------+\n|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |\n|  2 | Khilan   |  25 | Delhi     |  1500.00 |\n|  3 | kaushik  |  23 | Kota      |  2000.00 |\n|  4 | Chaitali |  25 | Mumbai    |  6500.00 |\n|  5 | Hardik   |  27 | Bhopal    |  8500.00 |\n|  6 | Komal    |  22 | MP        |  4500.00 |\n|  7 | Muffy    |  24 | Indore    | 10000.00 |\n+----+----------+-----+-----------+----------+\n<\/pre>\n<h3>The SAVEPOINT Command<\/h3>\n<p>A SAVEPOINT is a point in a transaction when you can roll the transaction back to a certain point without rolling back the entire transaction.<\/p>\n<p>The syntax for a SAVEPOINT command is as shown below.<\/p>\n<pre class=\"result notranslate\">SAVEPOINT SAVEPOINT_NAME;\n<\/pre>\n<p>This command serves only in the creation of a SAVEPOINT among all the transactional statements. The ROLLBACK command is used to undo a group of SQL Transactions.<\/p>\n<p>The syntax for rolling back to a SAVEPOINT is as shown below.<\/p>\n<pre class=\"result notranslate\">ROLLBACK TO SAVEPOINT_NAME;\n<\/pre>\n<p>Following is an example where you plan to delete the three different records from the CUSTOMERS table. You want to create a SAVEPOINT before each delete, so that you can ROLLBACK to any SAVEPOINT at any time to return the appropriate data to its original state.<\/p>\n<p><b>Example<\/b><\/p>\n<p>Consider the CUSTOMERS table having the following records.<\/p>\n<pre class=\"prettyprint notranslate prettyprinted\"><span class=\"pun\">+----+----------+-----+-----------+----------+<\/span>\n<span class=\"pun\">|<\/span><span class=\"pln\"> ID <\/span><span class=\"pun\">|<\/span><span class=\"pln\"> NAME     <\/span><span class=\"pun\">|<\/span><span class=\"pln\"> AGE <\/span><span class=\"pun\">|<\/span><span class=\"pln\"> ADDRESS   <\/span><span class=\"pun\">|<\/span><span class=\"pln\"> SALARY   <\/span><span class=\"pun\">|<\/span>\n<span class=\"pun\">+----+----------+-----+-----------+----------+<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">1<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Ramesh<\/span>   <span class=\"pun\">|<\/span>  <span class=\"lit\">32<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Ahmedabad<\/span> <span class=\"pun\">|<\/span>  <span class=\"lit\">2000.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">2<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Khilan<\/span>   <span class=\"pun\">|<\/span>  <span class=\"lit\">25<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Delhi<\/span>     <span class=\"pun\">|<\/span>  <span class=\"lit\">1500.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">3<\/span> <span class=\"pun\">|<\/span><span class=\"pln\"> kaushik  <\/span><span class=\"pun\">|<\/span>  <span class=\"lit\">23<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Kota<\/span>      <span class=\"pun\">|<\/span>  <span class=\"lit\">2000.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">4<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Chaitali<\/span> <span class=\"pun\">|<\/span>  <span class=\"lit\">25<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Mumbai<\/span>    <span class=\"pun\">|<\/span>  <span class=\"lit\">6500.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">5<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Hardik<\/span>   <span class=\"pun\">|<\/span>  <span class=\"lit\">27<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Bhopal<\/span>    <span class=\"pun\">|<\/span>  <span class=\"lit\">8500.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">6<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Komal<\/span>    <span class=\"pun\">|<\/span>  <span class=\"lit\">22<\/span> <span class=\"pun\">|<\/span><span class=\"pln\"> MP        <\/span><span class=\"pun\">|<\/span>  <span class=\"lit\">4500.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">7<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Muffy<\/span>    <span class=\"pun\">|<\/span>  <span class=\"lit\">24<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Indore<\/span>    <span class=\"pun\">|<\/span> <span class=\"lit\">10000.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">+----+----------+-----+-----------+----------+<\/span><\/pre>\n<p>The following code block contains the series of operations.<\/p>\n<pre class=\"prettyprint notranslate prettyprinted\"><span class=\"pln\">SQL<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> SAVEPOINT SP1<\/span><span class=\"pun\">;<\/span>\n<span class=\"typ\">Savepoint<\/span><span class=\"pln\"> created<\/span><span class=\"pun\">.<\/span><span class=\"pln\">\nSQL<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> DELETE FROM CUSTOMERS WHERE ID<\/span><span class=\"pun\">=<\/span><span class=\"lit\">1<\/span><span class=\"pun\">;<\/span>\n<span class=\"lit\">1<\/span><span class=\"pln\"> row deleted<\/span><span class=\"pun\">.<\/span><span class=\"pln\">\nSQL<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> SAVEPOINT SP2<\/span><span class=\"pun\">;<\/span>\n<span class=\"typ\">Savepoint<\/span><span class=\"pln\"> created<\/span><span class=\"pun\">.<\/span><span class=\"pln\">\nSQL<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> DELETE FROM CUSTOMERS WHERE ID<\/span><span class=\"pun\">=<\/span><span class=\"lit\">2<\/span><span class=\"pun\">;<\/span>\n<span class=\"lit\">1<\/span><span class=\"pln\"> row deleted<\/span><span class=\"pun\">.<\/span><span class=\"pln\">\nSQL<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> SAVEPOINT SP3<\/span><span class=\"pun\">;<\/span>\n<span class=\"typ\">Savepoint<\/span><span class=\"pln\"> created<\/span><span class=\"pun\">.<\/span><span class=\"pln\">\nSQL<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> DELETE FROM CUSTOMERS WHERE ID<\/span><span class=\"pun\">=<\/span><span class=\"lit\">3<\/span><span class=\"pun\">;<\/span>\n<span class=\"lit\">1<\/span><span class=\"pln\"> row deleted<\/span><span class=\"pun\">.<\/span><\/pre>\n<p>Now that the three deletions have taken place, let us assume that you have changed your mind and decided to ROLLBACK to the SAVEPOINT that you identified as SP2. Because SP2 was created after the first deletion, the last two deletions are undone \u2212<\/p>\n<pre class=\"prettyprint notranslate prettyprinted\"><span class=\"pln\">SQL<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> ROLLBACK TO SP2<\/span><span class=\"pun\">;<\/span>\n<span class=\"typ\">Rollback<\/span><span class=\"pln\"> complete<\/span><span class=\"pun\">.<\/span><\/pre>\n<p>Notice that only the first deletion took place since you rolled back to SP2.<\/p>\n<pre class=\"prettyprint notranslate prettyprinted\"><span class=\"pln\">SQL<\/span><span class=\"pun\">&gt;<\/span><span class=\"pln\"> SELECT <\/span><span class=\"pun\">*<\/span><span class=\"pln\"> FROM CUSTOMERS<\/span><span class=\"pun\">;<\/span>\n<span class=\"pun\">+----+----------+-----+-----------+----------+<\/span>\n<span class=\"pun\">|<\/span><span class=\"pln\"> ID <\/span><span class=\"pun\">|<\/span><span class=\"pln\"> NAME     <\/span><span class=\"pun\">|<\/span><span class=\"pln\"> AGE <\/span><span class=\"pun\">|<\/span><span class=\"pln\"> ADDRESS   <\/span><span class=\"pun\">|<\/span><span class=\"pln\"> SALARY   <\/span><span class=\"pun\">|<\/span>\n<span class=\"pun\">+----+----------+-----+-----------+----------+<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">2<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Khilan<\/span>   <span class=\"pun\">|<\/span>  <span class=\"lit\">25<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Delhi<\/span>     <span class=\"pun\">|<\/span>  <span class=\"lit\">1500.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">3<\/span> <span class=\"pun\">|<\/span><span class=\"pln\"> kaushik  <\/span><span class=\"pun\">|<\/span>  <span class=\"lit\">23<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Kota<\/span>      <span class=\"pun\">|<\/span>  <span class=\"lit\">2000.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">4<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Chaitali<\/span> <span class=\"pun\">|<\/span>  <span class=\"lit\">25<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Mumbai<\/span>    <span class=\"pun\">|<\/span>  <span class=\"lit\">6500.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">5<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Hardik<\/span>   <span class=\"pun\">|<\/span>  <span class=\"lit\">27<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Bhopal<\/span>    <span class=\"pun\">|<\/span>  <span class=\"lit\">8500.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">6<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Komal<\/span>    <span class=\"pun\">|<\/span>  <span class=\"lit\">22<\/span> <span class=\"pun\">|<\/span><span class=\"pln\"> MP        <\/span><span class=\"pun\">|<\/span>  <span class=\"lit\">4500.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">|<\/span>  <span class=\"lit\">7<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Muffy<\/span>    <span class=\"pun\">|<\/span>  <span class=\"lit\">24<\/span> <span class=\"pun\">|<\/span> <span class=\"typ\">Indore<\/span>    <span class=\"pun\">|<\/span> <span class=\"lit\">10000.00<\/span> <span class=\"pun\">|<\/span>\n<span class=\"pun\">+----+----------+-----+-----------+----------+<\/span>\n<span class=\"lit\">6<\/span><span class=\"pln\"> rows selected<\/span><span class=\"pun\">.<\/span><\/pre>\n<h3>The RELEASE SAVEPOINT Command<\/h3>\n<p>The RELEASE SAVEPOINT command is used to remove a SAVEPOINT that you have created.<\/p>\n<p>The syntax for a RELEASE SAVEPOINT command is as follows.<\/p>\n<pre class=\"result notranslate\">RELEASE SAVEPOINT SAVEPOINT_NAME;\n<\/pre>\n<p>Once a SAVEPOINT has been released, you can no longer use the ROLLBACK command to undo SQL Transactions performed since the last SAVEPOINT.<\/p>\n<h3>The SET TRANSACTION Command<\/h3>\n<p>The SET TRANSACTION command can be used to initiate a database transaction. This command is used to specify characteristics for the transaction that follows. For example, you can specify a transaction to be read only or read write.<\/p>\n<p>The syntax for a SET TRANSACTION command is as follows.<\/p>\n<pre class=\"result notranslate\">SET TRANSACTION [ READ WRITE | READ ONLY ];<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>A SQL\u00a0 transaction is a unit of work that is performed against a database. SQL Transactions are units or sequences [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[2],"tags":[],"class_list":["post-317","post","type-post","status-publish","format-standard","hentry","category-sql"],"_links":{"self":[{"href":"https:\/\/barkhane.com\/sql\/wp-json\/wp\/v2\/posts\/317","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/barkhane.com\/sql\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/barkhane.com\/sql\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/barkhane.com\/sql\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/barkhane.com\/sql\/wp-json\/wp\/v2\/comments?post=317"}],"version-history":[{"count":0,"href":"https:\/\/barkhane.com\/sql\/wp-json\/wp\/v2\/posts\/317\/revisions"}],"wp:attachment":[{"href":"https:\/\/barkhane.com\/sql\/wp-json\/wp\/v2\/media?parent=317"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/barkhane.com\/sql\/wp-json\/wp\/v2\/categories?post=317"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/barkhane.com\/sql\/wp-json\/wp\/v2\/tags?post=317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}