Re: Issue related with patitioned table:How can I quickly determine which child table my record is in,given a specific primary key value?

From: Luca Ferrari <fluca1978(at)gmail(dot)com>
To: 王旭 <wangxu(at)gu360(dot)com>
Cc: pgsql-general <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: Issue related with patitioned table:How can I quickly determine which child table my record is in,given a specific primary key value?
Date: 2019-07-17 09:13:38
Message-ID: CAKoxK+64bLMR8nuMyrRwjvQD90o4e=LVNgEMysy16btuwmhXKg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Wed, Jul 17, 2019 at 9:19 AM 王旭 <wangxu(at)gu360(dot)com> wrote:
> I tried something like this: e.g., for symbol_id 6365,
> SELECT (hashint2(6365::SMALLINT)% 10)

shouldn't this be modulus 3 instead of 10?
The problem is that record 6365 is not where you expected to be?

As far as I know, there is no easy user-level way to get the route to
a table, but you can juggle with the expression that defined each
table and make a good guess.
However, your query should give a good idea:

# SELECT 'my_table_' || (hashint2(6365::smallint)% 3);
?column?
------------
my_table_2

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message James (王旭) 2019-07-17 09:36:15 Re: Issue related with patitioned table:How can I quickly determine which child table my record is in,given a specific primary key value?
Previous Message Luca Ferrari 2019-07-17 09:02:42 Re: How to run a task continuously in the background