diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/tests/default/alter_insert_event_rule_nothing.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/tests/default/alter_insert_event_rule_nothing.sql
new file mode 100644
index 000000000..5736790e0
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/tests/default/alter_insert_event_rule_nothing.sql
@@ -0,0 +1,10 @@
+-- Rule: "test_insert_rule1_$%{}[]()&*^!@""'`\/#" ON public.test_emp_rule
+
+-- DROP Rule "test_insert_rule1_$%{}[]()&*^!@""'`\/#" ON public.test_emp_rule;
+
+CREATE OR REPLACE RULE "test_insert_rule1_$%{}[]()&*^!@""'`\/#" AS
+    ON INSERT TO public.test_emp_rule
+    WHERE (new.salary > 8000)
+    DO INSTEAD NOTHING;
+
+COMMENT ON RULE "test_insert_rule1_$%{}[]()&*^!@""'`\/#" ON public.test_emp_rule IS 'This is a insert rule';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/tests/default/alter_insert_event_rule_nothing_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/tests/default/alter_insert_event_rule_nothing_msql.sql
new file mode 100644
index 000000000..8385feb98
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/tests/default/alter_insert_event_rule_nothing_msql.sql
@@ -0,0 +1,4 @@
+CREATE OR REPLACE RULE "test_insert_rule1_$%{}[]()&*^!@""'`\/#" AS
+    ON INSERT TO public.test_emp_rule
+    WHERE (new.salary > 8000)
+    DO INSTEAD NOTHING;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/tests/default/alter_insert_event_rule_nothing_update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/tests/default/alter_insert_event_rule_nothing_update.sql
new file mode 100644
index 000000000..9bec3d210
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/tests/default/alter_insert_event_rule_nothing_update.sql
@@ -0,0 +1,10 @@
+-- Rule: "test_insert_rule1_$%{}[]()&*^!@""'`\/#" ON public.test_emp_rule
+
+-- DROP Rule "test_insert_rule1_$%{}[]()&*^!@""'`\/#" ON public.test_emp_rule;
+
+CREATE OR REPLACE RULE "test_insert_rule1_$%{}[]()&*^!@""'`\/#" AS
+    ON UPDATE TO public.test_emp_rule
+    WHERE (new.salary > 8000)
+    DO INSTEAD NOTHING;
+
+COMMENT ON RULE "test_insert_rule1_$%{}[]()&*^!@""'`\/#" ON public.test_emp_rule IS 'This is a insert rule';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/tests/default/alter_insert_event_rule_nothing_update_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/tests/default/alter_insert_event_rule_nothing_update_msql.sql
new file mode 100644
index 000000000..2975b8657
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/tests/default/alter_insert_event_rule_nothing_update_msql.sql
@@ -0,0 +1,4 @@
+CREATE OR REPLACE RULE "test_insert_rule1_$%{}[]()&*^!@""'`\/#" AS
+    ON UPDATE TO public.test_emp_rule
+    WHERE (new.salary > 8000)
+    DO INSTEAD NOTHING;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/tests/default/test.json b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/tests/default/test.json
index 7d84ce537..935f56f8d 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/tests/default/test.json
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/tests/default/test.json
@@ -33,7 +33,7 @@
         "name": "test_insert_rule_$%{}[]()&*^!@\"'`\\/#",
         "schema": "public",
         "view": "test_emp_rule",
-        "event": "Insert",
+        "event": "INSERT",
         "condition": "new.salary > 5000",
         "statements": "UPDATE test_emp_rule SET salary = 5000\n  WHERE test_emp_rule.emp_id = new.emp_id"
       },
@@ -49,7 +49,7 @@
         "name": "test_insert_rule1_$%{}[]()&*^!@\"'`\\/#",
         "schema": "public",
         "view": "test_emp_rule",
-        "event": "Insert",
+        "event": "INSERT",
         "do_instead": true,
         "comment": "This is a insert rule",
         "condition": "new.salary > 8000",
@@ -59,7 +59,7 @@
       "expected_msql_file": "alter_insert_event_rule_msql.sql"
     }, {
       "type": "alter",
-      "name": "Alter Rule for insert event with complex commands",
+      "name": "Alter Rule insert to update event with complex commands",
       "endpoint": "NODE-rule.obj_id",
       "sql_endpoint": "NODE-rule.sql_id",
       "msql_endpoint": "NODE-rule.msql_id",
@@ -68,6 +68,28 @@
       },
       "expected_sql_file": "alter_insert_event_rule_complex.sql",
       "expected_msql_file": "alter_insert_event_rule_complex_msql.sql"
+    }, {
+      "type": "alter",
+      "name": "Alter Rule for insert event to statements NOTHING",
+      "endpoint": "NODE-rule.obj_id",
+      "sql_endpoint": "NODE-rule.sql_id",
+      "msql_endpoint": "NODE-rule.msql_id",
+      "data": {
+        "statements": "NOTHING"
+      },
+      "expected_sql_file": "alter_insert_event_rule_nothing.sql",
+      "expected_msql_file": "alter_insert_event_rule_nothing_msql.sql"
+    }, {
+      "type": "alter",
+      "name": "Alter Rule for insert with NOTHING to Update",
+      "endpoint": "NODE-rule.obj_id",
+      "sql_endpoint": "NODE-rule.sql_id",
+      "msql_endpoint": "NODE-rule.msql_id",
+      "data": {
+        "event": "UPDATE"
+      },
+      "expected_sql_file": "alter_insert_event_rule_nothing_update.sql",
+      "expected_msql_file": "alter_insert_event_rule_nothing_update_msql.sql"
     }, {
       "type": "delete",
       "name": "Drop Rule",
@@ -85,7 +107,7 @@
         "name": "test_update_rule_$%{}[]()&*^!@\"'`\\/#",
         "schema": "public",
         "view": "test_emp_rule",
-        "event": "Update",
+        "event": "UPDATE",
         "condition": "old.name = 'Joe'",
         "statements": "UPDATE test_emp_rule SET salary = new.salary\n  WHERE test_emp_rule.name = 'Sam'"
       },
@@ -101,7 +123,7 @@
         "name": "test_update_rule1_$%{}[]()&*^!@\"'`\\/#",
         "schema": "public",
         "view": "test_emp_rule",
-        "event": "Update",
+        "event": "UPDATE",
         "do_instead": true,
         "comment": "This is a update rule",
         "condition": "old.name = 'Sam'",
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/rules/sql/update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/rules/sql/update.sql
index 0d7ccd551..e033af7b8 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/rules/sql/update.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/rules/sql/update.sql
@@ -8,7 +8,7 @@
 ALTER RULE {{ conn|qtIdent(o_data.name) }} ON {{ conn|qtIdent(o_data.schema, o_data.view) }} RENAME TO {{ conn|qtIdent(data.name) }};
 
 {% endif %}
-{% if data.event or data.do_instead is defined or data.condition is defined or data.statements is defined %}
+{% if data.event is defined or data.do_instead is defined or data.condition is defined or data.statements is defined %}
 CREATE OR REPLACE RULE {{ conn|qtIdent(rule_name) }} AS
     ON {% if data.event and data.event != o_data.event %}{{ data.event|upper }}{% else %}{{ o_data.event|upper }}{% endif %}
  TO {{ conn|qtIdent(o_data.schema, o_data.view) }}
@@ -18,16 +18,17 @@ CREATE OR REPLACE RULE {{ conn|qtIdent(rule_name) }} AS
     WHERE ({{ o_data.condition }})
 {% endif %}
     DO{% if (('do_instead' not in data and o_data.do_instead in ['true', True]) or (data.do_instead in ['true', True])) %}{{ ' INSTEAD' }}{% endif %}
-{% if data.statements and data.statements != o_data.statements and data.statements.strip() in ['', 'NOTHING']%}
+{% if data.statements is defined %}
+{% if data.statements.strip() in ['', 'NOTHING'] %}
  NOTHING;
-{% elif data.statements and data.statements != o_data.statements %}
+{% else %}
 
 ({{ data.statements.rstrip(';') }});
-{% elif data.statements is not defined and o_data.statements %}
-
-({{ o_data.statements.rstrip(';') }});
-{% else %}
+{% endif %}
+{% elif o_data.statements.strip() in ['', 'NOTHING'] %}
  NOTHING;
+{% else %}
+({{ o_data.statements.rstrip(';') }});
 {% endif %}
 
 {% endif %}
