有没有人能告诉我有没有什么区别
DROP IF EXISTS [TABLE_NAME]DROP [TABLE_NAME]我之所以这样问,是因为我在MVC web应用程序中使用了JDBC模板。如果我使用DROP [TABLE_NAME],错误提示表存在。如果我使用DROP IF EXISTS [TABLE_NAME],它会显示错误的SQL语法。有人能帮上忙吗?
发布于 2012-03-05 19:31:53
标准的SQL语法是
DROP TABLE table_name;IF EXISTS不是标准的;不同的平台可能用不同的语法支持它,或者根本不支持它。在PostgreSQL中,语法是
DROP TABLE IF EXISTS table_name;如果该表不存在,或者其他数据库对象依赖于该表,则第一个将抛出错误。大多数情况下,其他数据库对象将是外键引用,但也可能存在其他对象。(例如,视图。)如果表不存在,第二个方法不会抛出错误,但是如果其他数据库对象依赖于它,它仍然会抛出错误。
要删除一个表以及依赖于该表的所有其他对象,请使用其中一个。
DROP TABLE table_name CASCADE;
DROP TABLE IF EXISTS table_name CASCADE;请谨慎使用CASCADE。
发布于 2016-04-15 16:27:46
它不是直接被问到的。但是在寻找如何正确地做drop tables时,我偶然发现了这个问题,我猜其他许多人也是这样做的。
在SQL Server 2016+中,您可以使用
DROP TABLE IF EXISTS dbo.Table对于SQL Server <2016,我对永久表执行以下操作
IF OBJECT_ID('dbo.Table', 'U') IS NOT NULL
DROP TABLE dbo.Table; 或者这个,作为临时表
IF OBJECT_ID('tempdb.dbo.#T', 'U') IS NOT NULL
DROP TABLE #T; 发布于 2012-03-05 19:28:30
您在语法中忘记了table:
drop table [table_name]这会丢弃一张桌子。
使用
drop table if exists [table_name]在删除该表之前检查该表是否存在。
如果它存在,它将被删除。
如果不是,则不会抛出错误,也不会采取任何操作。
https://stackoverflow.com/questions/9565818
复制相似问题