谁能告诉我
DROP IF EXISTS [TABLE_NAME]
DROP [TABLE_NAME]
我这样问是因为我正在我的 MVC web 应用程序中使用 JDBC 模板。如果我使用 DROP [TABLE_NAME],错误说明 Table 存在。如果我使用 DROP IF EXISTS [TABLE_NAME],它会显示错误的 SQL 语法。有人能帮忙吗?
您忘记了语法中的 table:
table
drop table [table_name]
会掉下一张桌子。
吸毒
drop table if exists [table_name]
在删除该表之前检查它是否存在。 如果它存在,就会被丢弃。 如果没有,则不会抛出任何错误,也不会采取任何操作。
如果没有这样名称的表存在,则 DROP错误地失败,而 DROP IF EXISTS什么也不做。
DROP
DROP IF EXISTS
如果使用脚本创建/修改数据库,这非常有用; 这样就不必手动确保删除以前版本的表。你只要做个 DROP IF EXISTS然后忘了它。
当然,您当前的 DB 引擎可能不支持这个选项,很难通过您提供的信息来了解更多有关错误的信息。
DROP TABLE IF EXISTS [table_name]
它首先检查表是否存在,如果存在则删除表 同时
DROP TABLE [table_name]
它没有检查就删除了,所以如果它不存在,就会出现一个错误
标准 SQL 语法是
DROP TABLE table_name;
IF EXISTS不是标准的; 不同的平台可能用不同的语法支持它,或者根本不支持它。在 PostgreSQL 中,语法是
IF EXISTS
DROP TABLE IF EXISTS table_name;
如果表不存在,或者其他数据库对象依赖于该表,则第一个对象将抛出错误。大多数情况下,其他数据库对象将是外键引用,但也可能存在其他对象。(例如,观点)如果表不存在,第二个对象不会抛出错误,但是如果其他数据库对象依赖它,它仍然会抛出错误。
要删除一个表以及所有依赖于它的其他对象,请使用下面的一个。
DROP TABLE table_name CASCADE; DROP TABLE IF EXISTS table_name CASCADE;
小心使用 CASCADE。
这不是直接要求的。但是,在寻找如何正确地抛桌子时,我被这个问题绊倒了,我想其他许多人也是这样做的。
从 SQLServer2016 + 可以使用
DROP TABLE IF EXISTS dbo.Table
对于 SQLServer < 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;