PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Tabela partycjonowania na podstawie pierwszej litery pola varchar

Możesz użyć wyrażenia w partition by klauzula, np.:

create table my_table(name text)
partition by list (left(name, 1));

create table my_table_a
partition of my_table
for values in ('a');

create table my_table_b
partition of my_table
for values in ('b');

Wyniki:

insert into my_table 
values
    ('abba'), ('alfa'), ('beta');

select 'a' as partition, name from my_table_a
union all
select 'b' as partition, name from my_table_b;

 partition | name 
-----------+------
 a         | abba
 a         | alfa
 b         | beta
(3 rows)

Jeśli partycjonowanie ma nie uwzględniać wielkości liter, możesz użyć

create table my_table(name text)
partition by list (lower(left(name, 1)));

Przeczytaj w dokumentacji:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę automatycznie wypełnić pola bazy danych SQLAlchemy? (Fask-SQLAlchemia)

  2. PL/pgSQL dla dynamicznych zapytań typu „wszystko w jednym”

  3. PG::UndefinedObject:BŁĄD:typ hstore nie istnieje, ale istnieje

  4. Heroku Postgres Error:PGError:ERROR:organizacje relacyjne nie istnieją (ActiveRecord::StatementInvalid)

  5. Jak zoptymalizować zapytanie, jeśli już używam indeksu GIN