PostgreSQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди, рд╕рд┐рд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реМ рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдп рдЬрдорд╛ рд╣реЛ рдЧрдП рд╣реИрдВ: pg_class, pg_attribute, pg_constraints, рдЖрджрд┐ред

рдЙрдирдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ? рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХрдо рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ? рдХреНрд░рд╛рд╕реНрдиреЛрдпрд╛рд░реНрд╕реНрдХ рдЧреНрд░рд╛рд╣рдХ рдРрд╕реЗ "рдмрдХрд╡рд╛рд╕" рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдФрд░ рдлрд┐рд░ рднреА, рдЕрдЧрд░ рд╡реЗ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд▓реЗрдЦрдХред рдФрд░ рдЙрд╕рдиреЗ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЕрд▓рдорд╛рд░реА рдореЗрдВ, рдХрд┐рддрд╛рдмреЗрдВ рдкрдврд╝рдиреЗ рдХреА рддрд░рд╣ рдЙрдиреНрд╣реЗрдВ рд░рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдХреЛрдИ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдФрд░ рдХрд┐рд╕реА рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдХреИрдЯрд▓реЙрдЧ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред
рд▓реЗрдХрд┐рди рдкреНрд░рдХрд╛рд╢рди рдХреЛ рдПрдХ рдЙрдмрд╛рдК рдЧрдгрдирд╛ рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреНрдпреЛрдВ рдмрдирд╛рдП рдЧрдП рдереЗ, рдореИрдВрдиреЗ рдЙрдирдореЗрдВ рд╕реЗ рдЙрди рд▓реЛрдЧреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЬреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд▓рдХреНрд╖реНрдп рджреНрд╡рд╛рд░рд╛ рдПрдХрдЬреБрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдХрд╛рд░реНрдп рдЬреЛ рдПрдХ рдордирдорд╛рдиреА рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕реВрдЪреА рдХреЛ
adtf_Table_ComplexFeatures рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ рдореБрдЦреНрдп рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд▓реЗрдЦ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рддрдХ рд╕реАрдорд┐рдд рд╣реЛрдЧрд╛ рдЬреЛ рд╕рд┐рд░ рд╕рдорд╛рд░реЛрд╣ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд▓реЗрдЦ рдХреА рдкрд╣рд▓реА рдЫрдорд╛рд╣реА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рджреВрд╕рд░рд╛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рд╣реИред рдЙрди рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреЗрд╡рд▓ рд╕реНрд░реЛрдд рдЧреНрд░рдВрдереЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рд╣рдо рддреБрд░рдВрдд
рдкрд░рд┐рд╢рд┐рд╖реНрдЯ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВред
рдпрд╣ рднреА рджреЗрдЦреЗрдВ
PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпред рднрд╛рдЧ рджреЛ ;
PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпред рднрд╛рдЧ рддреАрди
PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпред рдЕрдВрдд (рднрд╛рдЧ рдЪрд╛рд░) ред
рд╣рдо рдХрд┐рди рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ, рдЗрд╕рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рд╕реНрдЯреНрд░реАрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реИрдВ, рдЬреЛ
Adtf_Table_ComplexFeatures ( 'рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ' , 'рд╕рдбрд╝рдХ' ) рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛ рджреА рдЧрдИ рд╣реИрдВред
рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕реНрдЯреНрд░реАрдЯ рдЯреЗрдмрд▓ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕реВрдЪреА рд╣реИред рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рд╕реЗрдЯ рдкрд░рд┐рд╢рд┐рд╖реНрдЯ 2 рдХреЗ рдкреВрд░рдХ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рддрд╛рд▓рд┐рдХрд╛ 1. рд╕реНрдЯреНрд░реАрдЯ рдЯреЗрдмрд▓ рдХреА рдЙрдиреНрдирдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВред

рдЖрдХреГрддрд┐ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдкрд╛рда рд╕рдВрд╕реНрдХрд░рдгрд╢реНрд░реЗрдгреА | рд╕рдВрдЦреНрдпрд╛ | рдирд╛рдо | рдЯрд┐рдкреНрдкрдгреА | рдЯрд╛рдЗрдк | рдЖрдзрд╛рд░ рдкреНрд░рдХрд╛рд░ | ? рдкреВрд░реНрдг рдирд╣реАрдВ |
---|
tbl | 0 | рд╕рдбрд╝рдХ | рдмрд╕реНрддрд┐рдпреЛрдВ рдореЗрдВ рд╕рдбрд╝рдХреЛрдВ рдХреА рд╕реВрдЪреА | | | |
att | 1 | wcrccode | рджреЗрд╢ рдХрд╛ рдХреЛрдб | wcrccode | SMALLINT | рдЯреА |
att | 2 | localityid | рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдЖрдИрдбреА | localityid | рдкреВрд░реНрдгрд╛рдВрдХ | рдЯреА |
att | 3 | streetid | рдЧрд╛рдБрд╡ рдХреА рдЖрдИрдбреА рдЧрд▓реА | streetid | SMALLINT | рдЯреА |
att | 4 | streettypeacrm | рд╕рдбрд╝рдХ рдХрд╛ рдХрд┐рдирд╛рд░рд╛ | streettypeacrm | рдЪрд░рд┐рддреНрд░ (8) | рдЪ |
att | 5 | streetname | рдЧрд▓реА рдХрд╛ рдирд╛рдо | streettypeacrm | рд╡рд░реНрдЪрд░ (150) | рдЯреА |
pk | 0 | xpkstreet | рд╕рдбрд╝рдХ рдХреА рдореЗрдЬ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА | | | |
pkatt | 1 | wcrccode | рджреЗрд╢ рдХрд╛ рдХреЛрдб | wcrccode | SMALLINT | рдЯреА |
fk01 | 1 | fk_street_locality | рдЯреЗрдмрд▓ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА | | | |
fk02 | 2 | fk_street_streettype | рдЯреЗрдмрд▓ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА | | | |
idx01 | 1 | xie1street | рдмрд╕реНрддреА рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рд╕рдбрд╝рдХ рдХреЗ рдирд╛рдо рд╕реЗ рд╕реВрдЪрдХрд╛рдВрдХ | | | |
idx02 | 2 | xie2street | рдЬрд╝рд┐рдк рдХреЛрдб | | | |
idx03 | 3 | xie3street | рд╕рднреА рдмрд╕реНрддрд┐рдпреЛрдВ рдХреЗ рд╕рдбрд╝рдХ рдХреЗ рдирд╛рдо рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ | | | |
idx04 | 4 | xpkstreet | рд╕рдбрд╝рдХ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЕрджреНрд╡рд┐рддреАрдп (рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА) рд╕реВрдЪрдХрд╛рдВрдХ | | | |
рдЕрдХреНрд╖рд░реЛрдВ рдФрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдЗрд╕ рд╕рдореВрд╣ рдореЗрдВ рд╢рддреНрд░реБрддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
- рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдирд╛рдо;
- рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдЙрдирдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд╕реВрдЪреА;
- рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА, рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реА рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде;
- рдЯреЗрдмрд▓ рдЗрдВрдбреЗрдХреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреАред
рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ "рд╢реНрд░реЗрдгреА" рдлрд╝реАрд▓реНрдб рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ ("рд╕рдВрдЦреНрдпрд╛") рдХреЗ рдореВрд▓реНрдпреЛрдВ рд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрддреА рд╣реИред
рддрд╛рд▓рд┐рдХрд╛ 2. рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╢реНрд░реЗрдгрд┐рдпрд╛рдВред
рдЖрдХреГрддрд┐ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдкрд╛рда рд╕рдВрд╕реНрдХрд░рдгрдкрд░рд┐рд╡рд░реНрдгреА рд╢рдмреНрдж | рдирд┐рдпреБрдХреНрддрд┐ |
---|
рдЯреАрдмреА | рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ |
att | рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ |
seq | рдЕрдиреБрдХреНрд░рдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ |
pk | рдкреНрд░рд╛рдердорд┐рдХ рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ |
pkAtt | рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ |
fk99 | рд╡рд┐рджреЗрд╢реА рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ |
fk99att | рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ |
fk99rtbl | рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рдХреНрд╖рдг |
fk99ratt | рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ |
Idx99 | рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд▓рдХреНрд╖рдг |
Idx99att | рд╕реВрдЪрдХрд╛рдВрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ |
Inhtbl99 | рдЙрддреНрдкрдиреНрди рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рдХреНрд╖рдг |
рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдореВрд╣реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реНрд░реЗрдгреА рдореВрд▓реНрдп рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдПрдХ рдХреНрд░рдорд╛рдВрдХ рд╕рдВрдЦреНрдпрд╛, рд╕рдореВрд╣ рдХреЗ рднреАрддрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рднреЗрджрдиреЗ рдХреЗ рд▓рд┐рдПред
рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХрдИ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬрд┐рдпрд╛рдБ (FOREIGN KEY) рдФрд░ рдЗрдВрдбреЗрдХреНрд╕ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдЙрдирдХреЗ рд╡рдВрд╢ рдХреЗ рд▓рд┐рдП рд╢реНрд░реЗрдгреА рдореВрд▓реНрдп рдореЗрдВ рдПрдХ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдВрдЬреА "рд╢реНрд░реЗрдгреА" = idx02att рдФрд░ "рдирдВрдмрд░" = 1 рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ 2 рд╕реВрдЪрдХрд╛рдВрдХ рдХреА рдкрд╣рд▓реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреА рдЙрдкрд░реЛрдХреНрдд рд╕реВрдЪреА рдореЗрдВ, рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рдХрд╛ рд╕реНрдерд╛рди '99' рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЯрд┐рдкреНрдкрдгреА 1

рдЖрдХреГрддрд┐ рдореЗрдВ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдбSELECT * FROM admtf_Table_ComplexFeatures('pg_catalog','pg_class');
рд▓реЗрдЦ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рдПрдХ рд╕рд╣рд╛рдпрдХ рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкрд╛рдардХ, рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЗрд╕ рдпрд╛ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрдирд╛рддреЗ рд╣реБрдП, рдЕрдкрдиреА рдпреЛрдЬрдирд╛рдУрдВ рдФрд░ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдирд╛рдо рдХреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, pg_class рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рдЕрдВрддред
рд╕рд┐рд░ рд╕рдорд╛рд░реЛрд╣ рд╕рдВрд░рдЪрдирд╛
рдЕрдВрдЬреАрд░ред 1. рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд╕рд┐рд░ рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рдХрд╛рд░рдг рдмрдирддреЗ рд╣реИрдВредрддрд╛рд▓рд┐рдХрд╛ 3. рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯред
рдЖрдХреГрддрд┐ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдкрд╛рда рд╕рдВрд╕реНрдХрд░рдгрд╕рдВрдЦреНрдпрд╛ | рдирд╛рдо | рдирд┐рдпреБрдХреНрддрд┐ |
---|
1 | admtf_Table_Features | рдлрд╝рдВрдХреНрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИ |
2 | admtf_Table_Attributes | рдлрд╝рдВрдХреНрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдЙрдирдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред |
3 | admtf_Table_Constraintes | рдлрд╝рдВрдХреНрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдФрд░ рдЙрдирдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред |
4 | admtf_Table_Indexes | рдлрд╝рдВрдХреНрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рдЯреЗрдмрд▓ рдЗрдВрдбреЗрдХреНрд╕ рдФрд░ рдЙрдирдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред |
5 | admtf_Table_InheritanceChildrens | рдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ (IHERITS) рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред |
6 | admtf_Table_Sequences | рдлрд╝рдВрдХреНрд╢рди рдЕрдиреБрдХреНрд░рдореЛрдВ (рдЕрдиреБрдХреНрд░рдо) рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рддрд╛рд▓рд┐рдХрд╛ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред |
7 | admtf_PrimaryKey_ComplexFeatures | рдлрд╝рдВрдХреНрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреА рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ (рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА) рдХреА рдПрдХ рдкреВрд░реНрдг (рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд) рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред |
8 | admtf_ForeignKey_ComplexFeatures | рдлрд╝рдВрдХреНрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╡рд┐рджреЗрд╢реА рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ (FOREIGN KEY) рдХреА рдкреВрд░реНрдг (рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд) рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред |
9 | admtf_Index_ComplexFeatures | рдлрд╝рдВрдХреНрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдкреВрд░реНрдг (рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд) рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред |
10 | admtf_Table_ComplexFeatures | рдлрд╝рдВрдХреНрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рдкреВрд░реНрдг (рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд) рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред |
рдЯрд┐рдкреНрдкрдгреА 2ред
рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреНрд░рдо рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рд╡рд┐рд╡рд░рдг рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреА рдЬрд╛рдПрдЧреАред рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд▓реЗрдЦ рдХреЛ рдХрдИ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдЗрд╕ рдХреНрд░рдо рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрдереНрдп рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЗрд╡рд▓ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред
рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рдЕрдВрддред
рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА Admtf_Table_Features рдлрд╝рдВрдХреНрд╢рди рд╕реВрдЪреА
Adtf_Table_Features рдлрд╝рдВрдХреНрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рддрд╛рд▓рд┐рдХрд╛ (a_TableName ) рдФрд░ рдЙрд╕ рдпреЛрдЬрдирд╛ рдХрд╛ рдирд╛рдо рд▓реЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рднреАрддрд░ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ ( a_SchemaName )ред
рдлрд╝рдВрдХреНрд╢рди pg_class рдХреИрдЯрд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕реЗ рдореБрдЦреНрдп рдбреЗрдЯрд╛ рдХреЛ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдиреБрдХреНрд░рдореЛрдВ, рд╡рд┐рдЪрд╛рд░реЛрдВ, рднреМрддрд┐рдХ рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рд╕рдордЧреНрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рд░рд┐рдХреЙрд░реНрдб рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рд╛рд▓рдд relkind = 'r' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред
SELECT tbl.relname,dsc.description,tbl.relnatts::INTEGER,tbl.relchecks::INTEGER, tbl.relhaspkey,tbl.relhasindex,tbl.relhassubclass,tbl.reltuples::INTEGER FROM pg_class tbl INNER JOIN pg_namespace nspc ON tbl.relnamespace = nspc.oid LEFT OUTER JOIN pg_description dsc ON tbl.oid=dsc.objoid AND dsc.objsubid=0 WHERE LOWER( nspc.nspname)=LOWER(a_SchemaName) AND tbl.relkind='r' AND LOWER(tbl.relname) =LOWER(a_TableName);
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдбреЗрдЯрд╛ pg_namespace рдФрд░ pg_description рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ ред рдкрд╣рд▓реЗ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдХрд╛ рдирд╛рдо рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рд╕рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВред
рдпрд╣ рд╢рд░реНрдд objsubid = 0 рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдСрдмрдЬреЙрдЗрдб рдлрд╝реАрд▓реНрдб рдХрд╛ рдореВрд▓реНрдп рддрд╛рд▓рд┐рдХрд╛ рдФрд░ рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИред рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдЙрд╕ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдЬрд┐рд╕рдореЗрдВ objsubid рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред
рддрд╛рд▓рд┐рдХрд╛ 4. рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо adtf_Table_Features ('рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ', 'рд╕реНрдЯреНрд░реАрдЯ')редрдирд╛рдо | рдЯрд┐рдкреНрдкрдгреА | рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ | CHECK рдмрд╛рдзрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ | ? рд╡рд╣рд╛рдБ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рд╣реИ | ? рдЕрдиреБрдХреНрд░рдорд┐рдд рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ | ? рдХреНрдпрд╛ рдХреЛрдИ рд╡рдВрд╢рдЬ рд╣реИрдВ | рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ |
---|
рд╕рдбрд╝рдХ | рдмрд╕реНрддрд┐рдпреЛрдВ рдореЗрдВ рд╕рдбрд╝рдХреЛрдВ рдХреА рд╕реВрдЪреА | 22 | 0 | рдЯреА | рдЯреА | рдЪ | 20150 |
рдЯрд┐рдкреНрдкрдгреА 3
рд╕рдбрд╝рдХ рдХреА рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдпрд╣ рд╕рд╣рд╛рдпрдХ рд╕реНрдХреАрдорд╛ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдХрд╛рдлреА рднрд┐рдиреНрди рд╣реИред
рддрд╛рд▓рд┐рдХрд╛ 5. рд╕рдбрд╝рдХ рддрд╛рд▓рд┐рдХрд╛ рдХреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБред
attname | atttypid | attnum | рдЯрд┐рдкреНрдкрдгреА |
---|
Cmin | 29 | -4 | рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛ |
xmin | 28 | -3 | рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛ |
ctid | 27 | -1 | рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛ |
wcrccode | 795,369 | 1 | рдорд╛рдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ |
localityid | 795,352 | 2 | рдорд╛рдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ |
streetid | 795,364 | 3 | рдорд╛рдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ |
streettypeacrm | 1919168 | 4 | рдорд╛рдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ |
streetname | 1043 | 5 | рдорд╛рдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ |
........ pg.dropped.6 ........ | 0 | 6 | рджреВрд░рд╕реНрде рд╡рд┐рд╢реЗрд╖рддрд╛ |
........ pg.dropped.7 ........ | 0 | 7 | рджреВрд░рд╕реНрде рд╡рд┐рд╢реЗрд╖рддрд╛ |
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ PostgreSQL, рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╣рдЯрд╛рдП рдЧрдП рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред
рдЯрд┐рдкреНрдкрдгреА рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдЙрдирдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╕реВрдЪреА admtf_Table_Attributes рд╕реВрдЪреА
Adtf_Table_Attributes рдлрд╝рдВрдХреНрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рддрд╛рд▓рд┐рдХрд╛ ( a_TableName ) рдФрд░ рдЙрд╕ рдпреЛрдЬрдирд╛ рдХрд╛ рдирд╛рдо рд▓реЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рднреАрддрд░ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ ( a_SchemaName )ред
рдлрд╝рдВрдХреНрд╢рди pg_attribute рдФрд░ pg_type рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рд╕реЗ рдореБрдЦреНрдп рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ, рд╡рд┐рдЪрд╛рд░реЛрдВ, рднреМрддрд┐рдХ рд╡рд┐рдЪрд╛рд░реЛрдВ, рд╕рдордЧреНрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд░рд┐рдХреЙрд░реНрдб рд╣реИрдВред рджреВрд╕рд░рд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред
рд╢рд╛рдпрдж рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдЖрдзрд╛рд░ рдкреНрд░рдХрд╛рд░ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рддрд░реАрдХреЗ рд╕реЗ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдЯрд╛рдЗрдкрдмреАрд╕реЗрдЯрд╛рдЗрдк рдлрд╝реАрд▓реНрдб рд╕рдВрдмрдВрдзрд┐рдд pg_ypeype рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдореЗрдВ 0 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдЕрдиреНрдпрдерд╛, рд╡рд┐рд╢реЗрд╖рддрд╛ рдЖрдзрд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреА рд╣реИред рдЗрд╕рд▓рд┐рдП, pg_type рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ FROM рдХреНрд▓реЙрдЬрд╝ рдореЗрдВ рджреЛ рдмрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреА рд╣реИред рдкрд╣рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдореЗрдВ, рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдХрд╛рд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдпрджрд┐ рдЗрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ( рдЯрд╛рдЗрдкрдмреИрд╕реЗрдЯрд╛рдЗрдк = 0 ), рддреЛ рдЗрд╕ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕реЗ рдПрдХ рдЖрдзрд╛рд░ рдкреНрд░рдХрд╛рд░ рдорд╛рди рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдЖрдзрд╛рд░ рдкреНрд░рдХрд╛рд░ рд░рд┐рдХреЙрд░реНрдб рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП btyp.OID = typ.typbasetypeред
рд╕реАрдзреЗ рдЖрдзрд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрди рд╕рд┐рд╕реНрдЯрдо рдХреИрдЯрд▓реЙрдЧ FORMAT_TYPE (type_oid, typemod) рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдИ рдЧрдИ рд╣реИред рдЬрд┐рд╕рдХрд╛ рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЖрдзрд╛рд░ рдкреНрд░рдХрд╛рд░ OID рд░рд┐рдХреЙрд░реНрдб рд╣реИред рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЙрди рдЖрдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрдХ рдорд╛рди рд╣реИ рдЬрд┐рдирдореЗрдВ рдПрдХ рдЖрдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, VARCHAR (100) рдпрд╛ NUMERIC (4,2), DECIMAL (4,2)ред рдЯрд╛рдЗрдкрдореЙрдб рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдорд╛рди рдЯрд╛рдЗрдк.рдЯрд╛рдЗрдкреНрдЯрдореЛрдб рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдХрд╛рд░ рдХреА рд╣реИ, рдЕрдиреНрдпрдерд╛ attr.atttypmod рд╕реЗ , рдЕрд░реНрдерд╛рдд рд╕реАрдзреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд░рд┐рдХреЙрд░реНрдб рд╕реЗред

рдЖрдХреГрддрд┐ рдореЗрдВ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб SELECT attr.attnum, attr.attname::VARCHAR(100), CASE WHEN COALESCE(typ.typbasetype,0)>0 THEN typ.typname::VARCHAR(100) ELSE '' END, FORMAT_TYPE(COALESCE(NULLIF(typ.typbasetype,0),typ.oid), COALESCE(NULLIF(typ.typtypmod,-1),attr.atttypmod))::VARCHAR(256), attr.attnotnull, dsc.description FROM pg_attribute attr INNER JOIN pg_class tbl ON tbl.oid = attr.attrelid INNER JOIN pg_namespace nspc ON tbl.relnamespace = nspc.oid INNER JOIN pg_type typ ON attr.atttypid=typ.oid LEFT OUTER JOIN pg_description dsc ON dsc.objoid=attr.attrelid AND dsc.objsubid=attr.attnum WHERE LOWER( nspc.nspname)=LOWER(a_SchemaName) AND LOWER(tbl.relname) =LOWER(a_TableName) AND tbl.relkind='r' AND attr.attnum>0 AND attr.atttypID>0 ORDER BY tbl.relname,attr.attnum;
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдбреЗрдЯрд╛ pg_class , pg_namespace рдФрд░ pg_description рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ ред рд╕реНрдХреАрдорд╛ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдирд╛рдо рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рдФрд░ рджреВрд╕рд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрд╕рд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдЙрд╕ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдореЗрдВ рд╣реИ рдЬрд┐рд╕рдореЗрдВ dsc.objoid рдореЗрдВ рд╕реНрд░реЛрдд рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ OID рд╕рдорд╛рд╣рд┐рдд рд╣реИ, рдФрд░ dsc.objsubid рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд attr.attnum ред
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓реМрдЯрдиреЗ рдХреА рдкреНрд░рдгрд╛рд▓реА рдФрд░ рджреВрд░рд╕реНрде рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, WHERE рдХреНрд▓реЙрдЬрд╝ рдиреЗ рд╕реНрдерд┐рддрд┐ attr.attnum> 0 рдФрд░ attr.atttypID> 0 рд╕реЗрдЯ рдХреА рд╣реИред
рддрд╛рд▓рд┐рдХрд╛ 6. рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо adtf_Table_Attributes ('рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ', 'рд╕реНрдЯреНрд░реАрдЯ')редрд╕рдВрдЦреНрдпрд╛ | рдирд╛рдо | рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░ | рдЖрдзрд╛рд░ рдкреНрд░рдХрд╛рд░ | ? рдкреВрд░реНрдг рдирд╣реАрдВ | рдЯрд┐рдкреНрдкрдгреА |
---|
1 | wcrccode | wcrccode | SMALLINT | рдЯреА | рджреЗрд╢ рдХрд╛ рдХреЛрдб |
2 | localityid | localityid | рдкреВрд░реНрдгрд╛рдВрдХ | рдЯреА | рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдЖрдИрдбреА |
3 | streetid | streetid | SMALLINT | рдЯреА | рдЧрд╛рдБрд╡ рдХреА рдЖрдИрдбреА рдЧрд▓реА |
4 | streettypeacrm | streettypeacrm | рдЪрд░рд┐рддреНрд░ (8) | рдЪ | рд╕рдбрд╝рдХ рдХрд╛ рдХрд┐рдирд╛рд░рд╛ |
5 | streetname | | рд╡рд░реНрдЪрд░ (150) | рдЯреА | рдмрд╕реНрддреА рдХреА рдЧрд▓реА рдХрд╛ рдирд╛рдо |
рдЯрд╛рдЗрдк рдУрдб рдХреЗ рд▓рд┐рдП рд░реЗрдЧрдХреНрд▓рд╛рд╕ рдЙрд░реНрдл тАЛтАЛрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрдВрдХреНрд╢рди рд╕рдВрд╕реНрдХрд░рдг
PostgreSQL рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╝рд╛рдпрд░ (OID) OID рдХреЗ рд╕рдорд╛рди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдЪрд╛рд░-рдмрд╛рдЗрдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдирд╛рдореЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдХрд╛рд░рдг, рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЛ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд - рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╛рдо рдХреЛ OID рдХреЗ рдкреВрд░реНрдгрд╛рдВрдХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрдпрди рдХрдерди рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рддрд╛рд▓рд┐рдХрд╛ рдФрд░ рдЗрд╕рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреЛ рдЕрд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ - рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдлрд╝реАрд▓реНрдб рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- рдПрдЯреНрд░реЗрд▓рд┐рдб :: рд░рд┐рдХреНрд▓рд╛рд╕рд╕ (рдПрдЯреНрд░реЗрд▓рд┐рдб :: рд░рд┐рдЧреНрд▓реИрд╕: NAME) ,
- Atttypid :: regtype (Atttypid :: regtype: NAME)
- typbasetype :: regtype (typbasetype :: regtype: NAME) ред
SELECT attr.attname,attr.attrelid::regclass, attr.atttypid::regtype, typ.typbasetype::regtype,attr.attrelid::regclass::name, attr.atttypid::regtype::name,typ.typbasetype::regtype::name FROM pg_attribute attr INNER JOIN pg_type typ ON attr.atttypid=typ.oid WHERE attr.attrelid=('public'||'.'||'Street')::regclass AND attr.attnum>0 AND attr.atttypID>0 ORDER BY attr.attnum;
рдЗрд╕ рдХреНрд╡реЗрд░реА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИред

OID рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ SELECT рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдорд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ, рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдо рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдорд╛рди рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рддрд╛рд▓рд┐рдХрд╛ рдирд╛рдо рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рдХрд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЖрдЙрдЯрдкреБрдЯ рдорд╛рди рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рддрд╛рд▓рд┐рдХрд╛ рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдХреА рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдерди рдХреЗ WHERE рдХреНрд▓реЙрдЬ рдореЗрдВ, рд╕реНрдерд┐рддрд┐ attr.attrelid = ('public' ''ред '' 'Street') :: regclass рд╕реНрдерд┐рдд рд╣реИ , рдЬрд┐рд╕рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди рд╣реИ, рдФрд░ рджрд╛рдИрдВ рдУрд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди рдХреЗ рд╕рд╛рде рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ || рдЙрдкрдирд╛рдо рд░рд┐рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

рдЖрдХреГрддрд┐ рдореЗрдВ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб SELECT attr.attnum, attr.attname::VARCHAR(100), CASE WHEN COALESCE(typ.typbasetype,0)>0 THEN typ.typname::VARCHAR(100) ELSE '' END, FORMAT_TYPE(COALESCE(NULLIF(typ.typbasetype,0),typ.oid), COALESCE(NULLIF(typ.typtypmod,-1),attr.atttypmod))::VARCHAR(256), attr.attnotnull, dsc.description FROM pg_attribute attr INNER JOIN pg_type typ ON attr.atttypid=typ.oid LEFT OUTER JOIN pg_description dsc ON dsc.objoid=attr.attrelid AND dsc.objsubid=attr.attnum WHERE attr.attrelid=( a_SchemaName ||'.'|| a_TableName)::regclass AND attr.attnum>0 AND attr.atttypID>0 ORDER BY attr.attnum;
рдореБрдЦреНрдп рдмрдпрд╛рди рд╕реЗ рдЙрдкрдирд╛рдо рд░рд┐рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рджреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕реБрдзрд╛рд░ рдХрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рд▓рдЧрднрдЧ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рд╛ - рджреЛрдиреЛрдВ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдХреЛ 11 рдПрдордПрд╕ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢рд╛рдпрдж рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдкрд░реАрдХреНрд╖рдг рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВред
рдЯрд┐рдкреНрдкрдгреА рекрд╕реНрдерд┐рддрд┐ рдореЗрдВ рдПрдХ рдЧрдВрднреАрд░ рджреЛрд╖ рдХреЗ рд░реВрдк рдореЗрдВ attr.attrelid = (a_SchemaName || '||' || a_TableName) :: regclass рддрдм рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдЕрд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдХреАрдорд╛ рдФрд░ / рдпрд╛ рддрд╛рд▓рд┐рдХрд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдореЗрд░рд╛ рд╕реНрдХреАрдорд╛" рдФрд░ / рдпрд╛ "рдореЗрд░рд╛ рдЯреЗрдмрд▓" ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рджреЛрд╣рд░реЗ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ QUOTE_IDENT рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЖрдХреГрддрд┐ рдореЗрдВ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб SELECT attr.attname,attr.attrelid::regclass, attr.atttypid::regtype,typ.typbasetype::regtype, attr.attrelid::regclass::name, attr.atttypid::regtype::name,typ.typbasetype::regtype::name FROM pg_attribute attr INNER JOIN pg_type typ ON attr.atttypid=typ.oid WHERE attr.attrelid=(' '||'.'||' ')::regclass AND attr.attnum>0 AND attr.atttypID>0 ORDER BY attr.attnum; SELECT attr.attname,attr.attrelid::regclass, attr.atttypid::regtype,typ.typbasetype::regtype, attr.attrelid::regclass::name, attr.atttypid::regtype::name,typ.typbasetype::regtype::name FROM pg_attribute attr INNER JOIN pg_type typ ON attr.atttypid=typ.oid WHERE attr.attrelid=('" "'||'.'||'" "')::regclass AND attr.attnum>0 AND attr.atttypID>0 ORDER BY attr.attnum;
рдЗрд╕рд▓рд┐рдП, рдореИрдВ
LOWER (nspc.nspname) = LOWER (a_SchemaName) рдФрд░ LOWER (tbl.relname) = LOWER (a_TableName) рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд░реНрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛
рд╣реВрдВ , рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЬрдиреНрдо рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред
рдЯрд┐рдкреНрдкрдгреА рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВрдкрд░рд┐рд╢рд┐рд╖реНрдЯ 1. рд▓рд┐рдкрд┐рдпреЛрдВ
Adtf_Table_Features рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдирд╛
рдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВредрдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдХреЛрдб BEGIN TRANSACTION; DROP FUNCTION IF EXISTS admtf_Table_Features (a_SchemaName NAME,a_TableName NAME); CREATE OR REPLACE FUNCTION admtf_Table_Features (a_SchemaName NAME default 'public', a_TableName NAME default NULL ) RETURNS TABLE (rs_TableName NAME,rs_TableDescription TEXT,rs_NumberOfAttribute INTEGER,rs_NumberOfChecks INTEGER,rs_hasPKey BOOLEAN,rs_hasIndex BOOLEAN,rs_hasSubClass BOOLEAN,rs_NumberOfRow INTEGER) AS $BODY$ DECLARE c_TableKind CONSTANT CHAR:='r'; v_TableOID OID; v_TableName NAME; v_TableDescription TEXT; v_TableNumberOfRowCalc INTEGER;
Adtf_Table_Attributes рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдирд╛
рдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВредрдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдХреЛрдб BEGIN TRANSACTION; DROP FUNCTION IF EXISTS admtf_Table_Attributes (a_SchemaName NAME,a_TableName NAME); CREATE OR REPLACE FUNCTION admtf_Table_Attributes (a_SchemaName NAME default 'public', a_TableName NAME default NULL ) RETURNS TABLE (r_AttributeNumber SMALLINT,r_AttributeName NAME,r_UserTypeName NAME,r_TypeName NAME,r_isNotNULL BOOLEAN, r_Description Text) AS $BODY$ DECLARE c_TableKind CONSTANT CHAR:='r'; v_Scale INTEGER;
Regclass рдЙрдкрдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Adtf_Table_Attributes рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдирд╛
рдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВредрдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдХреЛрдб BEGIN TRANSACTION; DROP FUNCTION IF EXISTS admtf_Table_Attributes (a_SchemaName NAME,a_TableName NAME); CREATE OR REPLACE FUNCTION admtf_Table_Attributes (a_SchemaName NAME default 'public', a_TableName NAME default NULL ) RETURNS TABLE (r_AttributeNumber SMALLINT,r_AttributeName NAME,r_UserTypeName NAME,r_TypeName NAME,r_isNotNULL BOOLEAN, r_Description Text) AS $BODY$ DECLARE c_TableKind CONSTANT CHAR:='r'; v_Scale INTEGER;
рдкрд░рд┐рд╢рд┐рд╖реНрдЯ 2. рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рдордЧреНрд░реА
рд╕рд╣рд╛рдпрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛

- рджреЗрд╢ - рджреБрдирд┐рдпрд╛ рдХреЗ рджреЗрд╢реЛрдВ рдХрд╛ рд╡рд░реНрдЧреАрдХрд░рдг - рдУрдХреЗрдПрд╕рдПрдо (рджреБрдирд┐рдпрд╛ рдХреЗ рджреЗрд╢реЛрдВ рдХрд╛ рдЕрдЦрд┐рд▓ рд░реВрд╕реА рд╡рд░реНрдЧреАрдХрд░рдг);
- HOUSEADDR - рдмрд╕реНрддрд┐рдпреЛрдВ рдХреА рд╕рдбрд╝рдХреЛрдВ рдкрд░ рдШрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рд╕реВрдЪреА;
- LCLTYTYPE - рдмрд╕реНрддрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛;
- LOCALITY тАФ ;
- STREET тАФ ;
- STREETTYPE тАФ ;
- TERRITORY тАФ (, , , ..);
- TERRITORYTYPE тАФ .
Street ()
.1. Street ().
рд╢реНрд░реЗрдгреА | рд╕рдВрдЦреНрдпрд╛ | рдирд╛рдо | рдЯрд┐рдкреНрдкрдгреА | рдЯрд╛рдЗрдк | рдЖрдзрд╛рд░ рдкреНрд░рдХрд╛рд░ | ? рдкреВрд░реНрдг рдирд╣реАрдВ |
---|
tbl | 0 | street | | | | |
att | 1 | wcrccode | | wcrccode | smallint | t |
att | 2 | localityid | | localityid | integer | t |
att | 3 | streetid | | streetid | smallint | t |
att | 4 | streettypeacrm | | streettypeacrm | character(8) | f |
att | 5 | streetname | | streettypeacrm | varchar(150) | t |
pk | 0 | xpkstreet | street | | | |
pkatt | 1 | wcrccode | | wcrccode | smallint | t |
pkatt | 2 | localityid | | localityid | integer | t |
pkatt | 3 | streetid | | streetid | smallint | t |
fk01 | 1 | fk_street_locality | | | | |
fk01att | 1 | wcrccode | | wcrccode | smallint | t |
fk01att | 2 | localityid | | localityid | integer | t |
fk01rtbl | 0 | locality | | | | |
fk01ratt | 1 | wcrccode | | wcrccode | smallint | t |
fk01ratt | 2 | localityid | | localityid | integer | t |
fk02 | 2 | fk_street_streettype | | | | |
fk02att | 1 | streettypeacrm | | streettypeacrm | character(8) | f |
fk02rtbl | 0 | streettype | | | | |
fk02ratt | 1 | streettypeacrm | | streettypeacrm | character(8) | t |
idx01 | 1 | xie1street | | | | |
idx01att | 1 | wcrccode | | wcrccode | smallint | t |
idx01att | 2 | localityid | | localityid | integer | t |
idx01att | 3 | streettypeacrm | | streettypeacrm | character(8) | f |
idx01att | 4 | streetname | | | varchar(150) | t |
idx02 | 2 | xie2street | | | | |
idx02att | 1 | wcrccode | | wcrccode | smallin | t |
idx02att | 2 | localityid | | localityid | integer | t |
idx02att | 3 | streetname | | | varchar(150) | t |
idx03 | 3 | xie3street | | | | |
idx03att | 1 | streetname | | | varchar(150) | t |
idx04 | 4 | xpkstreet | ( ) street | | | |
idx04att | 1 | wcrccode | | wcrccode | smallint | t |
idx04att | 2 | localityid | | localityid | integer | t |
idx04att | 3 | streetid | | streetid | smallint | t |
PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпред ;PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпред рднрд╛рдЧ рддреАрдиPostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпред рдЕрдВрдд (рднрд╛рдЧ рдЪрд╛рд░) ред