diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/static/js/check_constraint.ui.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/static/js/check_constraint.ui.js
index 6730e31ff..e1d64ac1a 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/static/js/check_constraint.ui.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/static/js/check_constraint.ui.js
@@ -22,7 +22,7 @@ export default class CheckConstraintSchema extends BaseUISchema {
     if(_.isUndefined(this.nodeInfo)) {
       return true;
     }
-    return !_.isUndefined(this.nodeInfo['table']);
+    return _.isUndefined(this.nodeInfo['table']);
   }
 
   isReadonly(state) {
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/static/js/exclusion_constraint.ui.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/static/js/exclusion_constraint.ui.js
index e29d6b656..260f1e791 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/static/js/exclusion_constraint.ui.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/static/js/exclusion_constraint.ui.js
@@ -214,7 +214,7 @@ export default class ExclusionConstraintSchema extends BaseUISchema {
     if(_.isUndefined(this.nodeInfo)) {
       return true;
     }
-    return !_.isUndefined(this.nodeInfo['table']);
+    return _.isUndefined(this.nodeInfo['table']);
   }
 
   initialise(data) {
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/static/js/foreign_key.ui.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/static/js/foreign_key.ui.js
index 4567355d9..2b76f9ffa 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/static/js/foreign_key.ui.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/static/js/foreign_key.ui.js
@@ -124,7 +124,7 @@ export default class ForeignKeySchema extends BaseUISchema {
       columns: undefined,
       confupdtype: 'a',
       confdeltype: 'a',
-      autoindex: true,
+      autoindex: ForeignKeySchema.checkInTable(nodeInfo) ? false : true,
       coveringindex: undefined,
       hasindex:undefined,
     });
@@ -142,10 +142,14 @@ export default class ForeignKeySchema extends BaseUISchema {
   }
 
   get inTable() {
-    if(_.isUndefined(this.nodeInfo)) {
+    return ForeignKeySchema.checkInTable(this.nodeInfo);
+  }
+
+  static checkInTable(nodeInfo) {
+    if(_.isUndefined(nodeInfo)) {
       return true;
     }
-    return !_.isUndefined(this.nodeInfo['table']);
+    return _.isUndefined(nodeInfo['table']);
   }
 
   changeColumnOptions(columns) {
@@ -231,23 +235,14 @@ export default class ForeignKeySchema extends BaseUISchema {
       id: 'autoindex', label: gettext('Auto FK index?'),
       type: 'switch', group: gettext('Definition'),
       deps: ['name', 'hasindex'],
-      disabled: (state)=>{
+      readonly: (state)=>{
         if(!obj.isNew(state)) {
           return true;
         }
         // If we are in table edit mode then
         if(obj.inTable) {
-          // user is trying to add new constraint which should allowed for Unique
-          if(obj.isNew(state)) {
-            return true;
-          }
-        } else {
-          if(!obj.isNew(state) && state.autoindex && !isEmptyString(state.coveringindex)
-            && state.hasindex) {
-            return true;
-          }
-        }
-        if(state.hasindex) {
+          return true;
+        } else if(state.hasindex) {
           return true;
         }
         return false;
@@ -256,10 +251,9 @@ export default class ForeignKeySchema extends BaseUISchema {
         if(!obj.isNew(state)) {
           return {};
         }
-        // If we are in table edit mode then
+        // If we are in table edit mode
         if(obj.inTable) {
-          // user is trying to add new constraint which should allowed for Unique
-          if(obj.isNew(state)) {
+          if(obj.isNew(state) && obj.top.isNew()) {
             return {autoindex: false, coveringindex: ''};
           }
         }
@@ -279,12 +273,7 @@ export default class ForeignKeySchema extends BaseUISchema {
       mode: ['properties', 'create', 'edit'], group: gettext('Definition'),
       deps:['autoindex', 'hasindex'],
       disabled: (state)=>{
-        if(!obj.isNew(state) && state.autoindex && !isEmptyString(state.coveringindex)) {
-          return true;
-        }
-        if(state.hasindex) {
-          return true;
-        } else if(!state.autoindex) {
+        if(!state.autoindex && !state.hasindex) {
           return true;
         } else {
           return false;
@@ -304,7 +293,7 @@ export default class ForeignKeySchema extends BaseUISchema {
     },{
       id: 'columns', label: gettext('Columns'),
       group: gettext('Columns'), type: 'collection',
-      mode: ['create', 'edit'],
+      mode: ['create', 'edit', 'properties'],
       editable: false, schema: this.fkColumnSchema,
       headerSchema: this.fkHeaderSchema, headerVisible: (state)=>obj.isNew(state),
       CustomControl: DataGridViewWithHeaderForm,
diff --git a/web/pgadmin/static/js/SchemaView/DataGridView.jsx b/web/pgadmin/static/js/SchemaView/DataGridView.jsx
index 2ac17febb..0ffe54b84 100644
--- a/web/pgadmin/static/js/SchemaView/DataGridView.jsx
+++ b/web/pgadmin/static/js/SchemaView/DataGridView.jsx
@@ -81,7 +81,6 @@ const useStyles = makeStyles((theme)=>({
     overflow: 'hidden',
     textOverflow: 'ellipsis',
     whiteSpace: 'nowrap',
-    textAlign: 'center',
   },
   tableCellHeader: {
     fontWeight: theme.typography.fontWeightBold,
diff --git a/web/pgadmin/static/js/Theme/dark.js b/web/pgadmin/static/js/Theme/dark.js
index ab8414647..3d5cd3abc 100644
--- a/web/pgadmin/static/js/Theme/dark.js
+++ b/web/pgadmin/static/js/Theme/dark.js
@@ -59,6 +59,7 @@ export default function(basicSettings) {
       },
       text: {
         primary: '#d4d4d4',
+        muted: '#8A8A8A',
       },
       background: {
         paper: '#212121',
diff --git a/web/pgadmin/static/js/Theme/high_contrast.js b/web/pgadmin/static/js/Theme/high_contrast.js
index 898589d5b..2d5c6a1b7 100644
--- a/web/pgadmin/static/js/Theme/high_contrast.js
+++ b/web/pgadmin/static/js/Theme/high_contrast.js
@@ -57,6 +57,7 @@ export default function(basicSettings) {
       },
       text: {
         primary: '#fff',
+        muted: '#8b9cad',
       },
       background: {
         paper: '#010B15',
diff --git a/web/pgadmin/static/js/Theme/index.jsx b/web/pgadmin/static/js/Theme/index.jsx
index f8adb52f4..b03a04b19 100644
--- a/web/pgadmin/static/js/Theme/index.jsx
+++ b/web/pgadmin/static/js/Theme/index.jsx
@@ -325,6 +325,11 @@ function getFinalTheme(baseTheme) {
           }
         }
       },
+      MuiFormHelperText: {
+        root: {
+          color: baseTheme.palette.text.muted,
+        },
+      },
     }
   }, baseTheme);
 }
diff --git a/web/pgadmin/static/js/Theme/standard.js b/web/pgadmin/static/js/Theme/standard.js
index 46586f72e..e70861e0f 100644
--- a/web/pgadmin/static/js/Theme/standard.js
+++ b/web/pgadmin/static/js/Theme/standard.js
@@ -58,6 +58,7 @@ export default function(basicSettings) {
       },
       text: {
         primary: '#222',
+        muted: '#646B82',
       },
       background: {
         paper: '#fff',
diff --git a/web/pgadmin/static/js/components/FormComponents.jsx b/web/pgadmin/static/js/components/FormComponents.jsx
index 8dac34e2c..7ea4abd56 100644
--- a/web/pgadmin/static/js/components/FormComponents.jsx
+++ b/web/pgadmin/static/js/components/FormComponents.jsx
@@ -511,7 +511,7 @@ export function InputToggle({cid, value, onChange, options, disabled, readonly,
       {
         (options||[]).map((option)=>{
           const isSelected = option.value === value;
-          const isDisabled = disabled || (readonly && isSelected);
+          const isDisabled = disabled || (readonly && !isSelected);
           return (
             <ToggleButton key={option.label} value={option.value} component={isSelected ? PrimaryButton : DefaultButton}
               disabled={isDisabled} aria-label={option.label}>
@@ -766,7 +766,7 @@ export function InputSelect({
     menuPortalTarget: document.body,
     styles: styles,
     inputId: cid,
-    placeholder: controlProps.placeholder || gettext('Select...'),
+    placeholder: (readonly || disabled) ? '' : controlProps.placeholder || gettext('Select...'),
     ...otherProps,
     ...props
   };
diff --git a/web/regression/javascript/schema_ui_files/check_constraint.ui.spec.js b/web/regression/javascript/schema_ui_files/check_constraint.ui.spec.js
index 33f2ad103..14c64d446 100644
--- a/web/regression/javascript/schema_ui_files/check_constraint.ui.spec.js
+++ b/web/regression/javascript/schema_ui_files/check_constraint.ui.spec.js
@@ -142,7 +142,6 @@ describe('CheckConstraintSchema', ()=>{
     });
 
     /* If partitioned table */
-    schemaObj.nodeInfo = {table: {}};
     schemaObj.top = {
       sessData: {
         is_partitioned: true,
diff --git a/web/regression/javascript/schema_ui_files/exclusion_constraint.ui.spec.js b/web/regression/javascript/schema_ui_files/exclusion_constraint.ui.spec.js
index af0b2d6e5..2a10e7419 100644
--- a/web/regression/javascript/schema_ui_files/exclusion_constraint.ui.spec.js
+++ b/web/regression/javascript/schema_ui_files/exclusion_constraint.ui.spec.js
@@ -196,7 +196,6 @@ describe('ExclusionConstraintSchema', ()=>{
   it('depChange', ()=>{
     let state = {columns: [{local_column: 'id'}]};
 
-    schemaObj.nodeInfo = {table: {}};
     expect(getFieldDepChange(schemaObj, 'columns')(state, ['columns', 0], null, {
       type: SCHEMA_STATE_ACTIONS.DELETE_ROW,
       oldState: {
diff --git a/web/regression/javascript/schema_ui_files/foreign_key.ui.spec.js b/web/regression/javascript/schema_ui_files/foreign_key.ui.spec.js
index 56893dc76..7f0928b2b 100644
--- a/web/regression/javascript/schema_ui_files/foreign_key.ui.spec.js
+++ b/web/regression/javascript/schema_ui_files/foreign_key.ui.spec.js
@@ -171,6 +171,7 @@ describe('ForeignKeySchema', ()=>{
     let state = {columns: [{local_column: 'id'}]};
     let actionObj = {oldState:{name: 'fkname'}};
 
+    schemaObj.nodeInfo = {table: {}};
     state.autoindex = true;
     state.name = 'fkname';
     expect(getFieldDepChange(schemaObj, 'autoindex')(state, null, null, actionObj)).toEqual({
@@ -196,7 +197,8 @@ describe('ForeignKeySchema', ()=>{
     expect(getFieldDepChange(schemaObj, 'autoindex')(state, null, null, actionObj)).toEqual({});
 
     state.oid = null;
-    schemaObj.nodeInfo = {table: {}};
+    schemaObj.nodeInfo = {};
+    schemaObj.top = schemaObj;
     expect(getFieldDepChange(schemaObj, 'autoindex')(state, null, null, actionObj)).toEqual({
       autoindex: false,
       coveringindex: '',
