DROP commands permanently remove database objects from Materialize. Use these commands carefully, as dropping objects also affects all dependent objects.
DROP operations are permanent and cannot be undone. Always verify dependencies before dropping objects.
-- Drop with CASCADE (removes dependent objects)DROP MATERIALIZED VIEW my_view CASCADE;-- Drop with RESTRICT (fails if dependencies exist) - default behaviorDROP MATERIALIZED VIEW my_view RESTRICT;
CASCADE will drop all dependent objects without additional confirmation. Use with extreme caution in production.
-- Find objects that depend on a viewSELECT dependent.name AS dependent_object, dependent.type AS object_typeFROM mz_catalog.mz_objects dependentJOIN mz_internal.mz_object_dependencies dep ON dependent.id = dep.object_idJOIN mz_catalog.mz_objects target ON dep.referenced_object_id = target.idWHERE target.name = 'my_view';-- Find all dependencies recursivelyWITH RECURSIVE deps AS ( SELECT id, name FROM mz_catalog.mz_objects WHERE name = 'my_view' UNION SELECT o.id, o.name FROM mz_catalog.mz_objects o JOIN mz_internal.mz_object_dependencies d ON o.id = d.object_id JOIN deps ON d.referenced_object_id = deps.id)SELECT * FROM deps;
-- Drop test viewsDROP MATERIALIZED VIEW IF EXISTS test_mv CASCADE;DROP VIEW IF EXISTS test_view;-- Drop test sourcesDROP SOURCE IF EXISTS test_source CASCADE;
-- First, check what's running on the clusterSELECT name, typeFROM mz_catalog.mz_objectsWHERE cluster_id = ( SELECT id FROM mz_catalog.mz_clusters WHERE name = 'old_cluster');-- Drop the cluster (will fail if objects still use it)DROP CLUSTER old_cluster;
-- List objects in schema firstSELECT name, type FROM mz_catalog.mz_objectsWHERE schema_id = (SELECT id FROM mz_catalog.mz_schemas WHERE name = 'old_schema');-- Drop schema and all contentsDROP SCHEMA old_schema CASCADE;
-- Drop all objects with 'test_' prefixDROP MATERIALIZED VIEW IF EXISTS test_orders CASCADE;DROP SOURCE IF EXISTS test_kafka_source CASCADE;DROP CLUSTER IF EXISTS test_cluster CASCADE;