首页 > 数据库 >PostgreSQL

PostgreSQL

时间:2022-08-17 10:57:16浏览次数:86  
标签:PostgreSQL TRUNCATE 清空 外键 table TABLE DELETE

 

使用 DELETE 语句可以删除数据表里的所有数据。然而,对于包含大量数据的表来说,使用 TRUNCATE TABLE 将更高效。

TRUNCATE TABLE 语句在不扫描表的情况下,删除表里的所有数据。这就是它比 DELETE 快的原因。另外,它立即回收存储空间,所以不必执行随后的 VACUUM 操作,这在数据量大的表里是非常有用的。

清空所有数据

TRUNCATE TABLE 最简单的用法如下:

TRUNCATE TABLE table_name;

比如,要清空 sjk66 表的所有数据,可以这样写:

TRUNCATE TABLE sjk66;

还可以在清空数据的同时,重置所关联的序列计数:

TRUNCATE TABLE table_name RESET IDENTITY;

清空多表的数据

TRUNCATE TABLE 后面指定多个表名,即可清空多张表。表名之间使用逗号分隔:

TRUNCATE TABLE table_name1, table_name2, …

比如,清空 invoicecustomer 表:

TRUNCATE TABLE invoice, customer;

清空被外键引用的表

有时候,要清空的表可能被其它表通过外键引用,这时,那些被外键引用的记录将不会清空。

通过添加 CASCADE,可以将主表中的记录及外键引用的其它表的相关数据一起清空:

TRUNCATE TABLE table_name CASCADE;

TRUNCATE TABLE 和 ON DELETE 触发器

TRUNCATE TABLE 清空数据时,不会触发任何 ON DELETE触发器。如果要触发,需要定义数据表的 BEFORE TRUNCATE 和/或 AFTER TRUNCATE 触发器。

TRUNCATE TABLE 和事务

TRUNCATE TABLE 是事务安全的。意思是,如果将它放在诸如 BEGIN ... ROLLBACK 的事务语句里,清空操作可以安全的回滚。

删除表

DROP TABLE IF EXISTS tablename;

标签:PostgreSQL,TRUNCATE,清空,外键,table,TABLE,DELETE
From: https://www.cnblogs.com/colin88/p/16594263.html

相关文章

  • postgresql 自增列 初始值设置
    --获取自增列的名称SELECTpg_get_serial_sequence('table_name','id')ASsequence_name;--获取自增列的下一个值:SELECTnextval(pg_get_serial_sequence('tab......
  • QGIS上传图层到PostgreSQL数据库
    1.打开QGIS,加载需要上传的图层数据2.右击PostGIS新建连接3.数据连接信息首次连接还需要输入数据库账号密码4.上传图层这个非常简单,只需要把图层拖拽过去,等待一会,即......
  • PostgreSQL之汉化pgAdmin4
    1.打开pgAdmin42.File—>Preferences3.看图......
  • Windows下postgresql安装步骤
    1.下载安装包官方下载链接本文示例postgresql-14.5-1-windows-x642.右键以管理员身份运行安装程序3.安装目录4.选择组件5.数据目录6.设置密码,默认超级用户postg......