Skip to content

DBeaver "Column is read-only: No corresponding table column" Error ​

Problem Statement ​

When attempting to edit data directly in DBeaver's result grid, users encounter the frustrating error:

Column "[column name]" is read-only: No corresponding table column.

Despite traditional UPDATE SQL statements working correctly, the grid-based editing feature becomes unusable. This problem typically appears suddenly without changes to user permissions or database structure, suggesting client-side metadata or configuration issues within DBeaver.

Why This Happens ​

DBeaver's grid editor relies on accurate schema metadata to enable direct cell editing. When DBeaver's internal catalog becomes outdated, incorrectly cached, or misconfigured, it fails to map result columns to physical table columns—triggering the read-only error.

Step-by-Step Solutions ​

1. Refresh Metadata or Reconnect ​

The most common fix involves updating DBeaver's internal metadata:

Refresh Tables/Columns ​

  1. In the Database Navigator (left panel)
  2. Right-click your table → Refresh
    ⇒ If table-level refresh fails, refresh specific columns
  3. Expand table → Right-click Columns → Refresh

Refresh Table in Database Navigator

Reconnect Your Session ​

Disconnect and reconnect to force metadata reload:

  1. Right-click your database connection
  2. Select Disconnect
  3. Right-click again → Reconnect

🔁 This method resolved the issue for 101 users

2. Verify Critical Editor Settings ​

Improper metadata settings block column detection:

  1. Navigate to:
    Preferences → Editors → Data Editor → Metadata
  2. Enable:
    • ☑ Read table metadata (unique keys)
    • ☑ Read table references (foreign keys)
  3. Restart DBeaver after changes

⚠️ Note: Enabling these options may slow large table loads but is required for editing.

Metadata settings window

3. Unlock the Data Grid ​

🔒 Check for an accidental lock toggle:

  1. In the SQL Editor window
  2. Locate the lock icon in the toolbar
  3. Ensure it's blue (unlocked), not yellow (locked)

Lock icon location

4. Fix SQL Query Structure ​

Syntax nuances can confuse DBeaver's parser:

Separate Comments Properly ​

Insert an empty line between a comment and SELECT:

sql
# This causes issues in some versions  
-- Insert blank line below:  

SELECT * FROM your_table;  -- Valid with space above

Avoid Mixed Case in Calculated Columns ​

Aliases in uppercase may trigger issues:

sql
-- Problematic:
SELECT COUNT(*) AS "TOTAL_ROWS" FROM orders;  

-- Solution:
SELECT COUNT(*) AS total_rows FROM orders;  -- Lowercase alias

Explicitly List Columns ​

Avoid rowid alongside explicit columns:

sql
-- ❌ May cause conflict:
SELECT rowid, product, price FROM items;  

-- ✅ Use ONE approach:
SELECT * FROM items;                      -- Wildcard
-- OR  
SELECT product, price FROM items;         -- Explicit columns

5. Use Fully Qualified Names ​

Specify database/schema context for ambiguous tables:

sql
-- Before (problematic):
SELECT * FROM products;  

-- After (fixed):
SELECT * FROM inventory.public.products;  
-- Format: [database].[schema].[table]

6. Update Software Components ​

Upgrade DBeaver ​

Older versions contain bugs affecting metadata:

  • Download the latest version from dbeaver.io
  • Confirmed fixed reports in v23.0.1+

Switch Database Driver ​

MariaDB users: Try the MySQL driver instead:

  1. Edit connection → Driver tab
  2. Switch from MariaDB → MySQL driver

7. Advanced Validation Methods ​

🧪 Additional Diagnosis Steps

Check Table Metadata
Execute in your database:

sql
DESCRIBE your_table;  -- MySQL/MariaDB  
SELECT column_name FROM information_schema.columns  -- PostgreSQL
WHERE table_name = 'your_table';

Verify:

  1. Columns in the result match DBeaver's grid
  2. Primary keys are properly defined

Clean Restart

  1. Close DBeaver
  2. Delete temporary metadata:
    • macOS: ~/Library/DBeaverData/workspace6/.metadata
    • Windows: %AppData%\DBeaverData\workspace6\.metadata
  3. Restart DBeaver

When All Else Fails ​

  • Downgrade DBeaver to older stable versions (e.g., 22.2.2)
  • Report persistent bugs on GitHub Issues

Conclusion ​

This error occurs when DBeaver misaligns query results with table metadata. Start by refreshing table structures or disconnecting/reconnecting your session. If unresolved, validate your SQL syntax, driver choice, and editor settings—especially metadata toggles. Regular DBeaver updates prevent many of these issues from emerging. For recurring problems, fully qualify table names and maintain lowercase column aliases.

💡 Pro Tip: To avoid metadata sync issues when altering tables externally, always refresh DBeaver's connection after DDL changes.