Abd*_*ziz 158 sql drop-table
有人能告诉我两者之间是否有任何区别
DROP IF EXISTS [TABLE_NAME]
Run Code Online (Sandbox Code Playgroud)
DROP [TABLE_NAME]
Run Code Online (Sandbox Code Playgroud)
我问这个是因为我在我的MVC Web应用程序中使用JDBC模板.如果我使用DROP [TABLE_NAME]错误表示表存在.如果我用DROP IF EXISTS [TABLE_NAME]它说错误的SQL语法.有人可以帮忙吗?
Mik*_*ll' 282
标准SQL语法是
DROP TABLE table_name;
Run Code Online (Sandbox Code Playgroud)
IF EXISTS不标准; 不同的平台可能会以不同的语法支持它,或根本不支持它.在PostgreSQL中,语法是
DROP TABLE IF EXISTS table_name;
Run Code Online (Sandbox Code Playgroud)
如果表不存在,或者其他数据库对象依赖于它,则第一个将抛出错误.大多数情况下,其他数据库对象将是外键引用,但也可能有其他数据库对象.(例如,视图.)如果表不存在,第二个不会抛出错误,但如果其他数据库对象依赖它,它仍然会抛出错误.
要删除表以及依赖于它的所有其他对象,请使用其中一个.
DROP TABLE table_name CASCADE;
DROP TABLE IF EXISTS table_name CASCADE;
Run Code Online (Sandbox Code Playgroud)
请谨慎使用CASCADE.
Squ*_*azz 35
这不是直接问的问题.但是在寻找如何正确地删除表格时,我偶然发现了这个问题,因为我猜其他人也这样做了.
从SQL Server 2016+可以使用
DROP TABLE IF EXISTS dbo.Table
Run Code Online (Sandbox Code Playgroud)
对于SQL Server <2016,我所做的是永久表的以下内容
IF OBJECT_ID('dbo.Table', 'U') IS NOT NULL
DROP TABLE dbo.Table;
Run Code Online (Sandbox Code Playgroud)
或者,这是一个临时表
IF OBJECT_ID('tempdb.dbo.#T', 'U') IS NOT NULL
DROP TABLE #T;
Run Code Online (Sandbox Code Playgroud)
jue*_*n d 17
您忘记了 table语法:
drop table [table_name]
Run Code Online (Sandbox Code Playgroud)
放下一张桌子.
运用
drop table if exists [table_name]
Run Code Online (Sandbox Code Playgroud)
在删除表之前检查表是否存在.
如果它存在,它就会被删除.
如果不是,则不会抛出任何错误,也不会采取任何措施.
DROP TABLE IF EXISTS [table_name]
Run Code Online (Sandbox Code Playgroud)
它首先检查表是否存在,如果存在则删除表
DROP TABLE [table_name]
Run Code Online (Sandbox Code Playgroud)
它会在不进行检查的情况下删除,因此如果它不存在则退出并显示错误
| 归档时间: |
|
| 查看次数: |
384673 次 |
| 最近记录: |