Documentation Home
MySQL 5.7 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.3Mb
PDF (A4) - 39.3Mb
PDF (RPM) - 38.5Mb
HTML Download (TGZ) - 11.0Mb
HTML Download (Zip) - 11.0Mb
HTML Download (RPM) - 9.7Mb
Man Pages (TGZ) - 214.5Kb
Man Pages (Zip) - 323.6Kb
Info (Gzip) - 3.6Mb
Info (Zip) - 3.6Mb
Excerpts from this Manual

13.1.32 DROP VIEW Syntax

    view_name [, view_name] ...

DROP VIEW removes one or more views. You must have the DROP privilege for each view.

If any views named in the argument list do not exist, the statement returns an error indicating by name which nonexisting views it was unable to drop, but also drops all views in the list that do exist.


In MySQL 8.0, DROP VIEW fails if any views named in the argument list do not exist. Due to the change in behavior, a partially completed DROP VIEW operation on a MySQL 5.7 master fails when replicated to a MySQL 8.0 slave. To avoid this failure scenario, use IF EXISTS syntax in DROP VIEW statements to prevent an error from occurring for views that do not exist. For more information, see Atomic Data Definition Statement Support.

The IF EXISTS clause prevents an error from occurring for views that don't exist. When this clause is given, a NOTE is generated for each nonexistent view. See Section, “SHOW WARNINGS Syntax”.

RESTRICT and CASCADE, if given, are parsed and ignored.

User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
  Posted by Denis TRUFFAUT on June 3, 2012
A short explanation about multi drop view statements :

-- CREATE view1
SELECT id FROM mytable WHERE id < 5

-- DROP view2 (not existing) and view1 (existing)
DROP VIEW view2, view1;

-- Do some statements after drop
SELECT id FROM mytable LIMIT 0,5


-- Now, what happens ?

-- An error is generated for view2
-- (ERROR 1146 (42S02) at line 2: Table 'mydatabase.view1' doesn't exist)

-- view1 is dropped

-- It means, that even if a drop fail in a multi drop view statement, other drops are executed, independently. That is a noticeable particularity.

-- Execution is stopped

-- Of course, if a multi drop view statement fails, other statements after it (create, drop, select, alter...) will not be executed, as expected.

Tested with 5.6.4-m7-log.