J'ai créé un ensemble de tables partitionnées dans Postgres et j'ai commencé à insérer beaucoup de lignes via la table principale. Lorsque le processus de chargement a explosé sur moi, je me suis rendu compte que j'aurais dû déclarer la ligne d'identification BIGSERIAL (BIGINT avec une séquence, dans les coulisses), mais l'ai par inadvertance définie comme SERIAL (INTEGER). Maintenant que j'ai quelques milliards de lignes chargées, j'essaye de modifier la colonne en BIGINT. Le processus semble fonctionner, mais prend beaucoup de temps. Donc, en réalité, je ne sais pas vraiment si ça marche ou si c'est accroché. Je préfère ne pas recommencer tout le processus de chargement.Comment modifier un ensemble de tables partitionnées dans Postgres?
Des suggestions?
ok. Je ne suis pas clair à partir de votre réponse si vous suggérer je redémarre le serveur, ou je refais l'ensemble du processus de chargement de données. Est-ce que vous suggérez que je recharge la base de données, puisque ALTER la table principale prendra environ le même temps de toute façon? – punkish
J'aurais aussi dû ajouter ... Je n'ai aucun index sur la table, pas même une clé primaire. – punkish
Je vous suggère de refaire tout le processus de chargement, puisque la modification de la table prendra beaucoup plus de temps. Cependant, ne pas avoir d'index supprime l'un des plus gros problèmes avec les mises à jour massives. Le problème restant est que vous aurez besoin de deux fois l'espace disque, puis une fois terminé, la moitié de votre table sera vide. Je n'ai pas d'expérience récente avec de grandes tables * inherited *, donc je ne sais pas comment cela influence la décision. –