ALTER DATABASE Statement •Statements that create or drop objects in a writable database are rejected if they affect metadata of a view in a read-only database (for example, by making the view valid or invalid). • CREATE PROCEDURE •Stored routines: • DROP PROCEDURE • CREATE FUNCTION • CALL  (of procedures with side effects) • DROP FUNCTION • SELECT  (of functions with side effects) •For procedures and functions, read-only checks follow prelocking behavior. For  CALL  statements, read-only checks are done on a per-statement basis, so if some conditionally executed statement writing to a read-only database does not actually execute, the call still succeeds. On the other hand, for a function called within a  SELECT , execution of the function body happens in prelocked mode. As long as a some statement within the function writes to a read-only database, execution of the function fails with an error regardless of whether the statement actually executes. •Triggers: • CREATE TRIGGER •Trigger invocation. • DROP TRIGGER •Events: • CREATE EVENT • DROP EVENT •Event execution: • ALTER EVENT •Executing an event in the database fails because that would change the last-execution timestamp, which is event metadata stored in the data dictionary. Failure of event execution also has the effect of causing the event scheduler to stop. •If an event writes to an object in a read-only database, execution of the event fails with an error, but the event scheduler is not stopped. 2473