diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/columns/static/js/column.ui.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/columns/static/js/column.ui.js
index 031c79c3f..52f1323e6 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/columns/static/js/column.ui.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/columns/static/js/column.ui.js
@@ -86,7 +86,7 @@ export default class ColumnSchema extends BaseUISchema {
       // if we are in edit mode
       return !this.isNew(state);
     }
-    return false;
+    return true;
   }
 
   editableCheckForTable(state) {
@@ -152,7 +152,7 @@ export default class ColumnSchema extends BaseUISchema {
 
     return [{
       id: 'name', label: gettext('Name'), cell: 'text',
-      type: 'text', disabled: obj.inSchemaWithColumnCheck,
+      type: 'text', readonly: obj.inSchemaWithColumnCheck,
       editable: this.editableCheckForTable, noEmpty: true,
       minWidth: 115,
     },{
@@ -226,7 +226,7 @@ export default class ColumnSchema extends BaseUISchema {
       type: 'text', disabled: this.inCatalog, mode: ['properties'],
     },{
       id: 'cltype', label: gettext('Data type'),
-      disabled: obj.inSchemaWithColumnCheck, minWidth: 150,
+      readonly: obj.inSchemaWithColumnCheck, minWidth: 150,
       group: gettext('Definition'), noEmpty: true,
       editable: this.editableCheckForTable,
       options: this.cltypeOptions, optionsLoaded: (options)=>{obj.datatypes = options;},
@@ -345,12 +345,12 @@ export default class ColumnSchema extends BaseUISchema {
       }
     },{
       id: 'attstattarget', label: gettext('Statistics'), cell: 'text',
-      type: 'text', disabled: obj.inSchemaWithColumnCheck, mode: ['properties', 'edit'],
+      type: 'text', readonly: obj.inSchemaWithColumnCheck, mode: ['properties', 'edit'],
       group: gettext('Definition'),
     },{
       id: 'attstorage', label: gettext('Storage'), group: gettext('Definition'),
       type: 'select', mode: ['properties', 'edit'],
-      cell: 'select', disabled: obj.inSchemaWithColumnCheck,
+      cell: 'select', readonly: obj.inSchemaWithColumnCheck,
       controlProps: { placeholder: gettext('Select storage'),
         allowClear: false,
       },
@@ -363,11 +363,9 @@ export default class ColumnSchema extends BaseUISchema {
     },{
       id: 'defval', label: gettext('Default'), cell: 'text',
       type: 'text', group: gettext('Constraints'), deps: ['cltype', 'colconstype'],
+      readonly: obj.inSchemaWithColumnCheck,
       disabled: function(state) {
-        var isDisabled = false;
-        if(!obj.inSchemaWithModelCheck(state)) {
-          isDisabled = ['serial', 'bigserial', 'smallserial'].indexOf(state.cltype) > -1;
-        }
+        var isDisabled = ['serial', 'bigserial', 'smallserial'].indexOf(state.cltype) > -1;
         isDisabled = isDisabled || state.colconstype != 'n';
         return isDisabled;
       }, depChange: (state)=>{
@@ -381,7 +379,7 @@ export default class ColumnSchema extends BaseUISchema {
         }
       }, editable: function(state) {
         // inheritedfrom has value then we should disable it
-        if (!isEmptyString(state.inheritedfrom)) {
+        if (!isEmptyString(state.inheritedfrom) || !this.editableCheckForTable(state)) {
           return false;
         }
         return true;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/static/js/table.ui.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/static/js/table.ui.js
index d9525106a..d9c3f1fdf 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/static/js/table.ui.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/static/js/table.ui.js
@@ -61,7 +61,7 @@ export function getNodeTableSchema(treeNodeInfo, itemNodeData, pgBrowser) {
     ()=>getNodeAjaxOptions('get_op_class', pgBrowser.Nodes['table'], treeNodeInfo, itemNodeData),
     {
       relowner: pgBrowser.serverInfo[treeNodeInfo.server._id].user.name,
-      schema: treeNodeInfo.schema._label,
+      schema: treeNodeInfo.schema?._label,
     }
   );
 }
@@ -69,6 +69,7 @@ export function getNodeTableSchema(treeNodeInfo, itemNodeData, pgBrowser) {
 export class ConstraintsSchema extends BaseUISchema {
   constructor(nodeInfo, getFkObj, getExConsObj, otherOptions) {
     super();
+    this.nodeInfo = nodeInfo;
     this.primaryKeyObj = new PrimaryKeySchema({
       spcname: otherOptions.spcname,
     }, nodeInfo);
@@ -99,6 +100,7 @@ export class ConstraintsSchema extends BaseUISchema {
       group: gettext('Primary Key'), mode: ['edit', 'create'],
       canEdit: true, canDelete: true, deps:['is_partitioned', 'typname'],
       columns : ['name', 'columns'],
+      disabled: this.inCatalog,
       canAdd: function(state) {
         if (state.is_partitioned && obj.top.getServerVersion() < 110000) {
           return false;
@@ -135,6 +137,7 @@ export class ConstraintsSchema extends BaseUISchema {
         return true;
       },
       columns : ['name', 'columns','references_table_name'],
+      disabled: this.inCatalog,
       canAddRow: obj.anyColumnAdded,
       depChange: (state)=>{
         if (state.is_partitioned && obj.top.getServerVersion() < 110000 || state.columns?.length <= 0) {
@@ -149,6 +152,7 @@ export class ConstraintsSchema extends BaseUISchema {
       canEdit: true, canDelete: true, deps:['is_partitioned'],
       canAdd: true,
       columns : ['name', 'consrc'],
+      disabled: this.inCatalog,
     },{
       id: 'unique_constraint', label: '',
       schema: this.uniqueConsObj,
@@ -156,6 +160,7 @@ export class ConstraintsSchema extends BaseUISchema {
       group: gettext('Unique'), mode: ['edit', 'create'],
       canEdit: true, canDelete: true, deps:['is_partitioned', 'typname'],
       columns : ['name', 'columns'],
+      disabled: this.inCatalog,
       canAdd: function(state) {
         if (state.is_partitioned && obj.top.getServerVersion() < 110000) {
           return false;
@@ -175,6 +180,7 @@ export class ConstraintsSchema extends BaseUISchema {
       group: gettext('Exclude'), mode: ['edit', 'create'],
       canEdit: true, canDelete: true, deps:['is_partitioned'],
       columns : ['name', 'columns', 'constraint'],
+      disabled: this.inCatalog,
       canAdd: function(state) {
         if (state.is_partitioned && obj.top.getServerVersion() < 110000) {
           return false;
@@ -350,8 +356,9 @@ export default class TableSchema extends BaseUISchema {
       if (!isEmptyString(state.typname)) {
         return false;
       }
+      return true;
     }
-    return true;
+    return false;
   }
 
   // Check for column grid when to edit/delete (for each row)
@@ -559,13 +566,7 @@ export default class TableSchema extends BaseUISchema {
       group: gettext('Columns'),
       schema: this.columnsSchema,
       mode: ['create', 'edit'],
-      disabled: function() {
-        if(this.nodeInfo &&  'catalog' in this.nodeInfo)
-        {
-          return true;
-        }
-        return false;
-      },
+      disabled: this.inCatalog,
       deps: ['typname', 'is_partitioned'],
       depChange: (state, source, topState, actionObj)=>{
         if(source[0] === 'columns') {
diff --git a/web/pgadmin/static/js/SchemaView/FormView.jsx b/web/pgadmin/static/js/SchemaView/FormView.jsx
index f872703ca..b9799f82f 100644
--- a/web/pgadmin/static/js/SchemaView/FormView.jsx
+++ b/web/pgadmin/static/js/SchemaView/FormView.jsx
@@ -125,8 +125,11 @@ export function getFieldMetaData(field, schema, value, viewHelperProps, onlyMode
 
   let {canAdd, canEdit, canDelete, canAddRow } = field;
   retData.canAdd = _.isUndefined(canAdd) ? retData.canAdd : evalFunc(schema, canAdd, value);
+  retData.canAdd = !disabled && retData.canAdd;
   retData.canEdit = _.isUndefined(canEdit) ? retData.canEdit : evalFunc(schema, canEdit, value);
+  retData.canEdit = !disabled && retData.canEdit;
   retData.canDelete = _.isUndefined(canDelete) ? retData.canDelete : evalFunc(schema, canDelete, value);
+  retData.canDelete = !disabled && retData.canDelete;
   retData.canAddRow = _.isUndefined(canAddRow) ? retData.canAddRow : evalFunc(schema, canAddRow, value);
   return retData;
 }
diff --git a/web/regression/javascript/schema_ui_files/column.ui.spec.js b/web/regression/javascript/schema_ui_files/column.ui.spec.js
index bde3aff27..a6528ab16 100644
--- a/web/regression/javascript/schema_ui_files/column.ui.spec.js
+++ b/web/regression/javascript/schema_ui_files/column.ui.spec.js
@@ -202,13 +202,13 @@ describe('ColumnSchema', ()=>{
     expect(schemaObj.inSchemaWithColumnCheck(state)).toBe(true);
 
     schemaObj.nodeInfo = {};
-    expect(schemaObj.inSchemaWithColumnCheck(state)).toBe(false);
+    expect(schemaObj.inSchemaWithColumnCheck(state)).toBe(true);
   });
 
   it('editableCheckForTable', ()=>{
     let state = {};
     schemaObj.nodeInfo = {};
-    expect(schemaObj.editableCheckForTable(state)).toBe(true);
+    expect(schemaObj.editableCheckForTable(state)).toBe(false);
   });
 
   it('depChange', ()=>{
