DROP IF EXISTS与DROP的区别是什么?
DROP IF EXISTS与DROP的区别是什么?
有人能告诉我这两个之间有什么区别吗:
DROP IF EXISTS [TABLE_NAME]
DROP [TABLE_NAME]
我问这个问题是因为我在我的MVC Web应用中使用JDBC模板。如果我使用DROP [TABLE_NAME]
,会提示错误表存在。如果我使用DROP IF EXISTS [TABLE_NAME]
,会提示语法错误。有人可以帮忙吗?
admin 更改状态以发布 2023年5月21日
标准的SQL语法是\n
DROP TABLE table_name;
\nIF EXISTS
不是标准的,不同的平台可能使用不同的语法支持它,或者根本不支持。在PostgreSQL中,语法如下:\n
DROP TABLE IF EXISTS table_name;
\n第一个选项将在表不存在或其他数据库对象依赖它时抛出错误。大多数情况下,其他数据库对象将是外键引用,但也可能有其他类型的对象(例如视图)。第二个选项不会在表不存在时抛出错误,但如果其他数据库对象依赖它仍会抛出错误。\n要删除一个表以及所有依赖它的其他对象,请使用下列命令之一。\n
DROP TABLE table_name CASCADE; DROP TABLE IF EXISTS table_name CASCADE;
\n请谨慎使用CASCADE。