Problem
When working with SQL Analytics you encounter an error during runtime in your model or query indicating that a view or table does not exist, even after it has been created.
[TABLE_OR_VIEW_NOT_FOUND] The table or view <your-catalog>.<your-database>.<your-table> cannot be found.
Cause
You’re executing a job that uses CREATE OR REPLACE on an underlying view while running another job concurrently that attempts to read the same view.
Replacing a view is a delete-and-recreate operation, which means the view's old information, (including table_id and credentials) is not retained. If a query attempts to access the view while it is being replaced, the credentials will no longer be valid, leading to the view/table does not exist error.
Solution
Databricks recommends using the ALTER VIEW command to update the view definition instead of CREATE OR REPLACE VIEW. This approach preserves the table_id and ensures that the view remains accessible during updates.
Example
ALTER VIEW <your-catalog>.<your-database>.<your-view> AS
SELECT * FROM <your-catalog>.<your-database>.<your-table>;
For further guidance, refer to the ALTER VIEW (AWS | Azure | GCP) documentation.