sql >> Databáze >  >> RDS >> PostgreSQL

SQL, Postgres OID, co to jsou a proč jsou užitečné?

OID vám v podstatě dávají vestavěné ID pro každý řádek obsažený v systémovém sloupci (na rozdíl od sloupce v uživatelském prostoru). To je užitečné pro tabulky, kde nemáte primární klíč, máte duplicitní řádky atd. Pokud máte například tabulku se dvěma stejnými řádky a chcete odstranit nejstarší z nich, můžete to udělat pomocí id sloupec.

OID jsou implementovány pomocí 4bajtových celých čísel bez znaménka. nejsou unique–OID counter se bude pohybovat kolem 2³²-1. OID se také používá k identifikaci datových typů (viz /usr/include/postgresql/server/catalog/pg_type_d.h ).

Podle mých zkušeností se tato funkce obecně nepoužívá ve většině aplikací podporovaných postgresem (pravděpodobně částečně proto, že jsou nestandardní) a jejich použití je v podstatě zastaralé:

V PostgreSQL 8.1 default_with_oids je ve výchozím nastavení vypnuto; v předchozích verzích PostgreSQL byla ve výchozím nastavení zapnutá.

Použití OID v uživatelských tabulkách je považováno za zastaralé, takže většina instalací by měla tuto proměnnou ponechat deaktivovanou. Aplikace, které vyžadují OID pro konkrétní tabulku, by měly při vytváření tabulky zadat WITH OIDS. Tuto proměnnou lze povolit kvůli kompatibilitě se starými aplikacemi, které toto chování nedodržují.



  1. Postgresql změňte typ sloupce z int na UUID

  2. Spuštění PostgreSQL pomocí Amazon RDS

  3. Jak vytvořit jednoduché fuzzy vyhledávání pouze s PostgreSQL?

  4. Důležitost výběru správné velikosti virtuálního počítače Azure