最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Canrenametablebutcannottruncatetable

来源:动视网 责编:小采 时间:2020-11-09 14:36:42
文档

Canrenametablebutcannottruncatetable

Canrenametablebutcannottruncatetable:一个表无法truncate但是可以rename,这个乍听起来觉得好奇怪,下面模拟该过程。 3个session: session1执行truncate和rename操作; session2执行lock表操作; session3进行监控。 session1: [gpadmin@wx60 contrib]$ psq
推荐度:
导读Canrenametablebutcannottruncatetable:一个表无法truncate但是可以rename,这个乍听起来觉得好奇怪,下面模拟该过程。 3个session: session1执行truncate和rename操作; session2执行lock表操作; session3进行监控。 session1: [gpadmin@wx60 contrib]$ psq


一个表无法truncate但是可以rename,这个乍听起来觉得好奇怪,下面模拟该过程。 3个session: session1执行truncate和rename操作; session2执行lock表操作; session3进行监控。 session1: [gpadmin@wx60 contrib]$ psql gtlionspsql (8.2.15)Type help for

一个表无法truncate但是可以rename,这个乍听起来觉得好奇怪,下面模拟该过程。
3个session:
session1执行truncate和rename操作;
session2执行lock表操作;
session3进行监控。

session1:
[gpadmin@wx60 contrib]$ psql gtlions
psql (8.2.15)
Type "help" for help.
 
gtlions=# \d test
 Table "public.test"
 Column | Type | Modifiers 
--------+------------------------+-----------
 id | integer | 
 name | character varying(200) | 
Indexes:
 "idxtestid" btree (id)
 "idxtestname" btree (name)
Distributed by: (id)
 
gtlions=# select pg_backend_pid();
 pg_backend_pid 
----------------
 1473
(1 row)
 
gtlions=# truncate table test;
Cancel request sent
ERROR: relation "test" does not exist
gtlions=# alter table test rename to test1;
ALTER TABLE



session2:
[gpadmin@wx60 ~]$ psql gtlions
psql (8.2.15)
Type "help" for help.
 
gtlions=# select pg_backend_pid();
 pg_backend_pid 
----------------
 1555
(1 row)
 
gtlions=# begin;
BEGIN
gtlions=# select * from test limit 10;
 id | name 
-------+------------
 19672 | 19672-asfd
 19674 | 19674-asfd
 19676 | 19676-asfd
 19678 | 19678-asfd
 19680 | 19680-asfd
 19682 | 19682-asfd
 19684 | 19684-asfd
 19686 | 19686-asfd
 19688 | 19688-asfd
 19690 | 19690-asfd
(10 rows)
 
gtlions=# end;
COMMIT



session3:
[gpadmin@wx60 ~]$ psql gtlions
psql (8.2.15)
Type "help" for help.
 
gtlions=# select locktype,relation::regclass,pid,mode,granted,gp_segment_id from pg_locks where pid in (1473,1555) order by pid;
 locktype | relation | pid | mode | granted | gp_segment_id 
----------+----------+-----+------+---------+---------------
(0 rows)
 
gtlions=# select locktype,relation::regclass,pid,mode,granted,gp_segment_id from pg_locks where pid in (1473,1555) order by pid;
 locktype | relation | pid | mode | granted | gp_segment_id 
---------------+-------------+------+-----------------+---------+---------------
 relation | test | 1555 | AccessShareLock | t | -1
 relation | idxtestname | 1555 | AccessShareLock | t | -1
 transactionid | | 1555 | ExclusiveLock | t | -1
 relation | idxtestid | 1555 | AccessShareLock | t | -1
(4 rows)
 
gtlions=# select locktype,relation::regclass,pid,mode,granted,gp_segment_id from pg_locks where pid in (1473,1555) order by pid;
 locktype | relation | pid | mode | granted | gp_segment_id 
---------------+-------------+------+---------------------+---------+---------------
 transactionid | | 1473 | ExclusiveLock | t | -1
 relation | test | 1473 | AccessExclusiveLock | f | -1
 transactionid | | 1555 | ExclusiveLock | t | -1
 relation | idxtestid | 1555 | AccessShareLock | t | -1
 relation | idxtestname | 1555 | AccessShareLock | t | -1
 relation | test | 1555 | AccessShareLock | t | -1
(6 rows)



-EOF-

文档

Canrenametablebutcannottruncatetable

Canrenametablebutcannottruncatetable:一个表无法truncate但是可以rename,这个乍听起来觉得好奇怪,下面模拟该过程。 3个session: session1执行truncate和rename操作; session2执行lock表操作; session3进行监控。 session1: [gpadmin@wx60 contrib]$ psq
推荐度:
标签: table but can
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top