PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Защо не може да се създаде таблица за разделяне

„Декларативното разделяне на таблици“, което е разделяне като първокласна функция на СУБД със собствен синтаксис, беше добавен в PostgreSQL 10 .

В по-ранните версии можете да постигнете същия ефект с малко повече усилия, като използвате "наследяване на таблица". Има страница в ръководството, описваща как да направите това ръчно , обобщено като:

  1. Създайте "главната" таблица, от която ще наследят всички дялове.
  2. Създайте няколко „дъщерни“ таблици, всяка от които наследява от главната таблица.
  3. Добавете ограничения на таблицата към таблиците на дяловете, за да дефинирате разрешените стойности на ключове във всеки дял.
  4. За всеки дял създайте индекс на ключовата колона(и), както и всички други индекси, които бихте искали.
  5. По желание дефинирайте тригер или правило за пренасочване на данни, вмъкнати в главната таблица, към подходящия дял.
  6. Уверете се, че конфигурационният параметър constraint_exclusion не е деактивиран в postgresql.conf. Ако е така, заявките няма да бъдат оптимизирани по желание.

За да улесните това, ако не можете да надстроите до версия 10, можете да използвате разширение като pg_partman което ви дава допълнителни функции за настройка и управление на набори от дялове.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да INSERT INTO таблица от динамична заявка?

  2. Невалиден брой и сума в кръстосана заявка с помощта на PostgreSQL

  3. Създайте масив за стойности от списък с колони, извлечени в Postgres

  4. Не може да се използва кръстосана таблица в Postgres

  5. Направете файла database.yml да работи в Rails на OSX