postgresql之 drop & delete & truncate
官网:https://www.postgresql.org/docs/8.1/sql-droptable.html
Name
DROP TABLE -- remove a table
Synopsis
DROP TABLE name [, ...] [ CASCADE | RESTRICT ]
Description
DROP TABLE removes tables from the database.
Only its owner may destroy a table.
To empty a table of rows, without destroying the table, use DELETE. DROP TABLE always removes any indexes, rules, triggers, and constraints that exist for the target table. However, to drop a table that is referenced by a view or a foreign-key constraint of another table, CASCADE must be specified.
(CASCADE will remove a dependent view entirely, but in the foreign-key case it will only remove the foreign-key constraint, not the other table entirely.)
Name
DELETE -- delete rows of a table
Synopsis
DELETE FROM [ ONLY ] table
[ USING usinglist ]
[ WHERE condition ]
Description
DELETE deletes rows that satisfy the WHERE clause from the specified table.
If the WHERE clause is absent, the effect is to delete all rows in the table.
The result is a valid, but empty table.
Tip: TRUNCATE is a PostgreSQL extension that provides a faster mechanism to remove all rows from a table.
By default, DELETE will delete rows in the specified table and all its child tables.
If you wish to delete only from the specific table mentioned, you must use the ONLY clause.
There are two ways to delete rows in a table using information contained in other tables in the database: using sub-selects, or specifying additional tables in the USING clause. Which technique is more appropriate depends on the specific circumstances.
You must have the DELETE privilege on the table to delete from it, as well as the SELECT privilege for any table in the USING clause or whose values are read in the condition.
Parameters
- ONLY
-
If specified, delete rows from the named table only. When not specified, any tables inheriting from the named table are also processed.
- table
-
The name (optionally schema-qualified) of an existing table.
- usinglist
-
A list of table expressions, allowing columns from other tables to appear in the WHERE condition. This is similar to the list of tables that can be specified in the FROM Clause of a SELECT statement; for example, an alias for the table name can be specified. Do not repeat the target table in the usinglist, unless you wish to set up a self-join.
- condition
-
An expression returning a value of type boolean, which determines the rows that are to be deleted.
Notes
PostgreSQL lets you reference columns of other tables in the WHERE condition by specifying the other tables in the USING clause. For example, to delete all films produced by a given producer, one might do
DELETE FROM films USING producers
WHERE producer_id = producers.id AND producers.name = 'foo';What is essentially happening here is a join between films and producers, with all successfully joined films rows being marked for deletion. This syntax is not standard. A more standard way to do it is
DELETE FROM films
WHERE producer_id IN (SELECT id FROM producers WHERE name = 'foo');In some cases the join style is easier to write or faster to execute than the sub-select style.
Examples
Delete all films but musicals:
DELETE FROM films WHERE kind <> 'Musical';
Clear the table films:
DELETE FROM films;
Name
TRUNCATE -- empty a table or set of tables
Synopsis
TRUNCATE [ TABLE ] name [, ...]
Description
TRUNCATE quickly removes all rows from a set of tables. It has the same effect as an unqualified DELETE on each table, but since it does not actually scan the tables it is faster.
This is most useful on large tables.
Parameters
- name
-
The name (optionally schema-qualified) of a table to be truncated.
Notes
Only the owner of a table may TRUNCATE it.
TRUNCATE cannot be used on a table that has foreign-key references from other tables, unless all such tables are also truncated in the same command. Checking validity in such cases would require table scans, and the whole point is not to do one.
TRUNCATE will not run any user-defined ON DELETE triggers that might exist for the tables.
Examples
Truncate the tables bigtable and fattable:
TRUNCATE TABLE bigtable, fattable;
postgresql之 drop & delete & truncate的更多相关文章
- drop,delete,truncate区别
drop,delete,truncate区别 drop-->删除少量信息 eg:drop table 表名: delete-->删除某些数据 eg:delete from 表名: ...
- oracle 中删除表 drop delete truncate
oracle 中删除表 drop delete truncate 相同点,使用drop delete truncate 都会删除表中的内容 drop table 表名 delete from 表名 ...
- drop,delete,truncate 的区别
(1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作. TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独 ...
- drop,delete,truncate
drop,truncate是ddl,数据库定义语言,不执行事务 delete是dml,数据库操作语言,有事务 drop:删除内容和定义,释放空间 delete:删除内容,不删除定义,不释放空间 tru ...
- drop delete truncate 区别
http://jingyan.baidu.com/article/8275fc8693e11846a03cf696.html
- delete/truncate/drop table的区别以及锁在这里的角色
数据库删除语句 Drop/Delete/Truncate比较 Delete :删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行). 删除某一行:Delete from 数据表名 ...
- MySQL---drop, delete, truncate的区别
drop, delete, truncate的区别 删除内容 drop直接删除整个表, 包含表结构和数据; truncate删除表中数据, 表结构及其列, 约束, 索引等不变, 再插入时自增id又从1 ...
- sql语句中----删除表数据drop、truncate和delete的用法
sql语句中----删除表数据drop.truncate和delete的用法 --drop drop table tb --tb表示数据表的名字,下同 删除内容和定义,释放空间.简单来说就是把整 ...
- ECSHOP后台SQL查询提示错误 this sql May contain UPDATE,DELETE,TRUNCATE,ALTER,DROP,FLUSH,INSERT
一).首先说一下错误现象:市面上流行的绝大部分ECSHOP模板,安装的时候都需要执行一段或几段SQL语句来修改数据结构或者初始化一些数据.大多数ECSHOP管理员为了省事,都会通过 “ECSHOP后台 ...
随机推荐
- c# 引用类型和值类型的内存分配
- 用js刷剑指offer(矩形覆盖)
题目描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形.请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 牛客网链接 思路 依旧是斐波那契数列 2 * n的大矩形,和n个 ...
- 谷歌,火狐提示来自"http://xxx.com/file"的资源已被阻止,因为 MIME 类型("text/plain")不匹配(X-Content-Type-Options: nosniff),如何解决?
在使用ueditor编辑的过程中无法上传图片,谷歌火狐浏览器提示Cross-Origin Read Blocking (CORB) blocked cross-origin response http ...
- 0010Springboot整合thymeleaf
1.pom.xml中添加thymeleaf的起步依赖 2.编写html文件并放在classpath:/templates/路径下 3.编写controller并返回字符串,会到classpath:/t ...
- Jsp与JavaScript区别
有时候会误以为这两个是同一个概念,但其实不是 Jsp全名为Java Server Pages(Java服务器页面),其根本是一个简化的Servlet设计,他实现了在Java当中使用HTML标签.Jsp ...
- 开发中少不了的Fun -- 前端本地存储
存储sessionStorage function setSessionStore (name, content) { if (!name) return if (typeof content !== ...
- MNIST 数据集介绍
在学习机器学习的时候,首要的任务的就是准备一份通用的数据集,方便与其他的算法进行比较. MNIST数据集是一个手写数字数据集,每一张图片都是0到9中的单个数字,比如下面几个: MNIST数据库 ...
- How to change the default browser in Visual Studio
http://www.hanselman.com/blog/HowToChangeTheDefaultBrowserInVisualStudioProgrammaticallyWithPowerShe ...
- 重新梳理一下adb操作app(golang版)
主要参考我之前整理的内容https://www.cnblogs.com/pu369/p/10490668.html,梳理简化一下思路,以便于用最简单的代码来应对无聊人士的要求. 需求主要是:打开手机. ...
- XML、HTML、XHTML的关系
标记语言 XML.HTML.XHTML这三者都有ML.ML(Markup Language)标记语言在维基百科中的解释是: 一种将文本以及文本相关的信息结合起来,展示出关于文档结构和数据处理细节的计算 ...