рдпрд╣ рд▓реЗрдЦ рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ рд╣реИ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ: pg_class, pg_attribute, pg_constraints, рдЖрджрд┐ред
рд▓реЗрдЦ рдХрд╛ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИ рдЬреЛ
рдмрд╛рдзрд╛рдУрдВ рдФрд░ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВ ред
рд▓реЗрдЦ рдХреА рдкрд╣рд▓реА рдЫрдорд╛рд╣реА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рджреВрд╕рд░рд╛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рд╣реИред рдЙрди рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреЗрд╡рд▓ рд╕реНрд░реЛрдд рдЧреНрд░рдВрдереЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рд╣рдо рддреБрд░рдВрдд
рдкрд░рд┐рд╢рд┐рд╖реНрдЯ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВред
рдпрд╣ рднреА рджреЗрдЦреЗрдВ
PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпред рднрд╛рдЧ рдПрдХ ;
PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпред рднрд╛рдЧ рддреАрди
PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпред рдЕрдВрдд (рднрд╛рдЧ рдЪрд╛рд░) ред
рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдФрд░ рдЙрдирдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╕реВрдЪреА adtf_Table_Constraintes
Admtf_Table_Constraintes рдлрд╝рдВрдХреНрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдФрд░ рдЙрдирдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдХрдореА (CONSTRAINT) рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ , рдФрд░ рдпрд╣рд╛рдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬреЛ рдХрд░реНрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ред
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рддрд╛рд▓рд┐рдХрд╛ (
a_TableName ) рдФрд░ рдЙрд╕ рдпреЛрдЬрдирд╛ рдХрд╛ рдирд╛рдо рд▓реЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рднреАрддрд░ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ (
a_SchemaName )ред
рдПрдХ рд╡рд┐рд╢реЗрд╖ рдмрд╛рдзрд╛ рдХрд╛ рд╡рд░реНрдгрди pg_class рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди рд╣реИ рдЬреЛ рдЗрд╕реЗ рд╢рд╛рд░реАрд░рд┐рдХ рд╕рдВрдмрдВрдз рдХреЗ рд░реВрдк рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдФрд░ pg_constraint рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрд╛рдзрд╛ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИред

рдЖрдХреГрддрд┐ рдореЗрдВ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдбSELECT tbl.OID,con.conname,con.contype,con.conkey,reftbl.OID, reftbl.relname,con.confkey,con.consrc FROM pg_constraint con INNER JOIN pg_namespace nsp ON con.connamespace=nsp.oid LEFT OUTER JOIN pg_class tbl ON con.conrelid=tbl.oid LEFT OUTER JOIN pg_class reftbl ON con.confrelid=reftbl.oid WHERE LOWER(nsp.nspname)=LOWER(a_SchemaName) AND LOWER(tbl.relname)=LOWER(a_TableOID) ORDER BY con.contype DESC,con.conname;
рдореБрдЦреНрдп рдбреЗрдЯрд╛ (рдкреНрд░рддрд┐рдмрдВрдз рдХрд╛ рдирд╛рдо рдФрд░ рдкреНрд░рдХрд╛рд░) pg_constraint рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдзрд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдПрдХ рд╣реА рдХреИрдЯрд▓реЙрдЧ рд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдУрдЖрдИрдбреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ( рдХрд╕рдирд╛ , рдЧреЛрдкрдиреАрдп ) рдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ ( рд╢рдВрдХреБ , рдХрдВрдлреЗрдЯ ) рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдмрд╛рдзрд╛ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдирд╛ред
рдлрд╝рдВрдХреНрд╢рди рддрд╛рд▓рд┐рдХрд╛ рдирд╛рдореЛрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╛рдзрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рддрд╛рд▓рд┐рдХрд╛ рдирд╛рдо рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ (OID) рджреНрд╡рд╛рд░рд╛ pg_class рдХреИрдЯрд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕реЗ рдирд┐рдХрд╛рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рджреНрд╡рд╛рд░рд╛ pg_attribute рдХреИрдЯрд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдоред рдХреНрдпреЛрдВрдХрд┐ рдЪреВрдВрдХрд┐ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рдПрдХ рд╕рд░рдгреА (рд╕реВрдЪреА) рдХреЗ рд░реВрдк рдореЗрдВ рдореБрдЦреНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдПрдХ рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред
рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рд╢реЗрд╖рддрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ - рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ (CHECK рдкреНрд░рддрд┐рдмрдВрдз) рдореЗрдВ рдлрд╝реАрд▓реНрдб рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдоред рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ pg_constraint рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдХрдВрд╕реЛрд▓ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдкрд╛рда рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред
рддрд╛рд▓рд┐рдХрд╛ 7. рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо adtf_Table_Constraintes ('рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ', 'рд╕реНрдЯреНрд░реАрдЯ')ред
рдЖрдХреГрддрд┐ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдкрд╛рда рд╕рдВрд╕реНрдХрд░рдгрдирд╛рдо | рдЯрд╛рдЗрдк | рд╕реНрд░реЛрдд рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ | рдмрд╛рд╣рд░реА рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдирд╛рдо | рдПрдХ рдмрд╛рд╣рд░реА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЧреБрдг | рдорд╛рдиреНрдпрддрд╛ рдирд┐рдпрдо |
---|
xpkstreet | рдкреА | wcrccode, localityid, streetid | | | |
fk_street_locality | рдЪ | wcrccode, рд╕реНрдерд╛рдиреАрдпрддрд╛ | рдЗрд▓рд╛рдХреЗ | wcrccode, рд╕реНрдерд╛рдиреАрдпрддрд╛ | |
fk_street_streettype | рдЪ | streettypeacrm | streettype | streettypeacrm | |
ck_street_streetname | рдЧ | streetname | | | ((рд╕рдбрд╝рдХ рдХрд╛ рдирд╛рдо) :: рдкрд╛рда! ~ * '[az]' :: рдкрд╛рда) |
ck_street_streettypeacrm | рдЧ | streettypeacrm | | | ((Streettypeacrm) :: bpchar! ~ * '[az]' :: рдЯреЗрдХреНрд╕реНрдЯ) |
рд╕рдВрд╕реНрдХрд░рдг рдХрд░реНрд╕рд░ рдХреЗ рдмрд┐рдирд╛
рдореИрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдореБрдЦреНрдп рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХрд░реНрд╕рд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдкреНрд░рд╢реНрдиреЛрдВ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рддрд╛ рд╣реВрдВред
рдореИрдВ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреВрдВрдЧрд╛ - рд╕реНрд╡рд╛рдж рдФрд░ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХреЙрдорд░реЗрдб рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рдХрд░реНрд╕рд░ рдХреЗ рдмрд┐рдирд╛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рджреВрдВрдЧрд╛ред рдХрд░реНрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред
рдореБрдЦреНрдп рдХрдард┐рдирд╛рдИ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рд░рдгреА рдХреЗ рдЧреБрдг рдкреНрд░рдХрд╛рд░ рдореЗрдВ рд╕реНрдерд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдЬреБрдбрд╝рдиреЗ (рдЬреЙрдЗрди) рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд░рдгрд┐рдпрд╛рдБ рд╢рдВрдХреБ рдФрд░ рдХрдиреНрдлрд╝реЗрдХреНрдЯ рд╣реИрдВ ред
SELECT c.conname,c.contype,c.conkey::SMALLINT[], GENERATE_SUBSCRIPTS(c.conkey, 1) as No FROM pg_constraint c WHERE c.conname='fk_street_locality' ORDER BY No;
рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, PostgrSQL рдореЗрдВ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдПрд░реЗ рддрддреНрд╡реЛрдВ рдХреЛ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, generate_subscripts рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рди рдХреЗрд╡рд▓ рдпрд╣ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рд╕рд░рдгреА рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрдХреЗрдд рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕рд░рдгреА рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдХрдИ рдореЗрдВ рд╕рд░рдгреА рд╡рд╛рд▓реЗ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рднреА рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдРрд╕реА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдореВрд▓реНрдп рд╣реЛрддрд╛ рд╣реИ - рд╕рд░рдгреА рдХреА рд╕реНрдерд┐рддрд┐ред
рддрд╛рд▓рд┐рдХрд╛ 8. рдЬрдирд░реЗрдЯ_ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореВрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдкреНрд░рдЪрд╛рд░ рдХрд░рдирд╛редрдкреНрд░рддрд┐рдмрдВрдз рдХрд╛ рдирд╛рдо | рдЯрд╛рдЗрдк | рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рдВрдЦреНрдпрд╛ рдХреА рд╕рд░рдгреА | рдПрдХ рд╕рд░рдгреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ |
---|
fk_street_locality | рдЪ | {1,2} | 1 |
fk_street_locality | рдЪ | {1,2} | 2 |

рдЖрдХреГрддрд┐ рдореЗрдВ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб SELECT con.conname AS ConstraintName,con.contype::VARCHAR(2) AS ConstraintType, STRING_AGG(attr.attname, ', 'ORDER BY con.No) AS r_ConstraintKeyNames, reftbl.relname AS RefTableName, STRING_AGG(rattr.attname,', 'ORDER BY con.No) AS r_RefTableKeyNames, con.consrc AS ConstraintSource FROM (SELECT c.oid, c.conrelid,c.confrelid,c.conname,c.contype, c.conkey::SMALLINT[],c.consrc, c.confkey::SMALLINT[], generate_subscripts(c.conkey, 1) as No FROM pg_constraint c) con INNER JOIN pg_class tbl ON con.conrelid=tbl.oid INNER JOIN pg_attribute attr ON attr.attrelid=tbl.oid AND attr.attnum=con.conkey[con.No] INNER JOIN pg_namespace nsp ON tbl.relnamespace=nsp.oid LEFT OUTER JOIN pg_class reftbl ON con.confrelid=reftbl.oid LEFT OUTER JOIN pg_attribute rattr ON rattr.attrelid=reftbl.oid AND rattr.attnum=con.confkey[con.No] WHERE LOWER(nsp.nspname)=LOWER(a_SchemaName) AND LOWER(tbl.relname)=LOWER(a_TableName) GROUP BY con.conname,con.contype,reftbl.relname,con.consrc ORDER BY con.contype DESC,con.conname;
рдРрд╕реА рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╣рд╛рд▓рдд attr.attrelid = tbl.oid рдФрд░ attr.attnum = con.conkey [con.No] рдХреЗ рддрд╣рдд рдЗрд╕рдореЗрдВ рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдо рдирд┐рдХрд╛рд▓рдХрд░ pg_attribute рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреИрдЯрд▓реЙрдЧ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдм рдпрд╣ рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдореЛрдВ рд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмрдирд╛рддрд╛ рд╣реИред
рдПрдХ рдкрдВрдХреНрддрд┐ рдмрдирд╛рдирд╛ рдПрдХрддреНрд░рд┐рдд рдлрд╝рдВрдХреНрд╢рди STRING_AGG рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЛ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдк (ORDER BY) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЕрдиреНрдпрдерд╛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рдХреНрд░рдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдХреНрд░рдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рджреЛрдиреЛрдВ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдо рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 20 рдПрдордПрд╕ рд▓рд┐рдпрд╛ рдЧрдпрд╛ред
Admtf_Table_Indexes рдбреЗрдЯрд╛рдмреЗрд╕ рдЯреЗрдмрд▓ рдЗрдВрдбреЗрдХреНрд╕ рдФрд░ рдЙрдирдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдлрд╝рдВрдХреНрд╢рди рд╕реВрдЪреА
Admtf_Table_Indexes рдлрд╝рдВрдХреНрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ (INDEX) рдФрд░ рдЙрдирдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ , рдФрд░ рдпрд╣рд╛рдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬреЛ рдХрд░реНрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ред
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рддрд╛рд▓рд┐рдХрд╛ (
a_TableName ) рдФрд░ рдЙрд╕ рдпреЛрдЬрдирд╛ рдХрд╛ рдирд╛рдо рд▓реЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рднреАрддрд░ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ (
a_SchemaName )ред

рдЖрдХреГрддрд┐ рдореЗрдВ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб SELECT tbl.oid,inxcls.relname,inxam.amname,inx.indisunique,inx.indisprimary, inx.indkey::SMALLINT[],inx.indoption::SMALLINT[],inxam.amcanorder FROM pg_index inx INNER JOIN pg_class inxcls ON inx.indexrelid=inxcls.oid INNER JOIN pg_namespace inxnsp ON inxcls.relnamespace=inxnsp.oid INNER JOIN pg_am inxam ON inxcls.relam=inxam.oid INNER JOIN pg_class tbl ON inx.indrelid=tbl.oid INNER JOIN pg_namespace nsp ON tbl.relnamespace=nsp.oid WHERE LOWER(nsp.nspname)=LOWER(a_SchemaName) AND LOWER(tbl.relname)=LOWER(a_TableOID) ORDER BY inxam.amname, inxcls.relname;
рдПрдХрд▓ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рд╡рд░реНрдгрди pg_class рдореЗрдВ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рд╕рдВрдпреЛрдЬрди рд╣реИ, рдЬреЛ рдЗрд╕реЗ рд╢рд╛рд░реАрд░рд┐рдХ рд╕рдВрдмрдВрдз рдХреЗ рд░реВрдк рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдФрд░ pg_index рдореЗрдВ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдбреЗрдЯрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╕реВрдЪрдХрд╛рдВрдХ рдПрдХреНрд╕реЗрд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА pg_am рд╕рд┐рд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИред
CASE inxam.amcanorder WHEN true THEN CASE inx.indoption[inx.No] & 1 WHEN 1 THEN ' DESC' ELSE ' ASC' END ELSE '' END;
рд╕реВрдЪрдХрд╛рдВрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ ( рдЗрдВрдбрд┐рд╕реБрдирд┐рдХ ) рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛, рдПрдХ рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА ( рдЕрдиреБрд╢рд╛рд╕рдирд╣реАрдирддрд╛ ) рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ, рдЬрд┐рдирдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реВрдЪрдХрд╛рдВрдХ ( рдЗрдВрдбреЗрдХ ) рдФрд░ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рдиреЛрдВ рдХреЗ рдХреНрд░рдо рдХреЗ рд╕рдВрдХреЗрддреЛрдВ рдХреЛ pg_index рдХреИрдЯрд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрдВрдбреЗрдХреНрд╕ ( рдЗрдВрдбреЛрдкреЗрд╢рди ) рдореЗрдВред
Pg_am рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреА рдкрд╣реБрдБрдЪ рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХреИрдЯрд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕реЗ, рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ ( amcanorder ) рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╕реЙрд░реНрдЯ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреА рдЙрдкрдпреБрдХреНрддрддрд╛ рдФрд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдкрд╣реБрдБрдЪ рд╡рд┐рдзрд┐ (рдирд╛рдо) рдХрд╛ рдирд╛рдо рдпрд╛ рдкреНрд░рдХрд╛рд░ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ ред
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, amcanorder рд╡рд┐рд╢реЗрд╖рддрд╛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд░рдо рдХреНрд░рдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдпрджрд┐ amcanorder = true , рддреЛ рд╕реЙрд░реНрдЯ рдХреНрд░рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдирд╣реАрдВред рдПрдХ рд╣реА рдЖрдХреГрддрд┐ рд╕реЗ, рджрддреНрддрдХ рдЧреНрд░рд╣рдг рд╕рд░рдгреА рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЕрд░реНрде рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ - рдпрджрд┐ рдореВрд▓реНрдп рдХреЗ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рд░реВрдк рдХреЗ рд╕рд╣реА рдмрд┐рдЯ рдореЗрдВ 1 рдмреА рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдореВрд▓реНрдп рдЕрд╡рд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рд╕реЙрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ - рдЖрд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВред
рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА, рд╕рд╛рде рд╣реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рдиреЛрдВ рдХреЗ рдХреНрд░рдо рдХреЗ рд╕рдВрдХреЗрдд, рдЪрдХреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
рддрд╛рд▓рд┐рдХрд╛ 9. рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо adtf_Table_Indexes ('рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ', 'рд╕реНрдЯреНрд░реАрдЯ')ред

рдЖрдХреГрддрд┐ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдкрд╛рда рд╕рдВрд╕реНрдХрд░рдгрд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдирд╛рдо | рд╡рд┐рдзрд┐ | ? рдЕрджреНрд╡рд┐рддреАрдп | ? рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА | рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ |
---|
xie1street | BTREE | рдЪ | рдЪ | wcrccode ASC, localityid ASC, streettypeacrm ASC, streetname ASC |
xie2stree | BTREE | рдЪ | рдЪ | wcrccode ASC, рдЗрд▓рд╛рдХреЗ рдХрд╛ ASC, рд╕рдбрд╝рдХ рдХрд╛ рдирд╛рдо ASC |
xie3street | BTREE | рдЪ | рдЪ | рд╕рдбрд╝рдХ рдХрд╛ рдирд╛рдо ASC |
xie9street | BTREE | рдЪ | рдЪ | wcrccode ASC, рдЗрд▓рд╛рдХреЗ рдХрд╛ ASC, рд╕рдбрд╝рдХ рдХрд╛ рдирд╛рдо DESC |
xpkstreet | BTREE | рдЯреА | рдЯреА | wcrccode ASC, рдЗрд▓рд╛рдХреЗ рдХрд╛ ASC, рд╕рдбрд╝рдХ рдХрд╛ ASC |
xts1street | рдЬрд┐рди | рдЪ | рдЪ | streettsvector |
xts2street | рдЬрд┐рди | рдЪ | рдЪ | streettsvector |
рд╕рдВрд╕реНрдХрд░рдг рдХрд░реНрд╕рд░ рдХреЗ рдмрд┐рдирд╛
рдПрдХ рдХрд░реНрд╕рд░ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдиреЗ рдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рднрд╛рдЧ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ:
- рдЬрдирд░реЗрдЯ_рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдкреБрдирд░реБрддреНрдкрд╛рджрди
- рдмрд╛рдж рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рд╕рдореВрд╣рди;
- ORDER BY рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде STRING_AGG рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдирд╛ред

рдЖрдХреГрддрд┐ рдореЗрдВ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб SELECT inxcls.relname AS r_IndexName ,inxam.amname AS r_IndexType, inx.indisunique AS r_isUnique,inx.indisprimary AS r_isPrimary, STRING_AGG(attr.attname|| CASE inxam.amcanorder WHEN true THEN CASE inx.indoption[inx.No] & 1 WHEN 1 THEN ' DESC' ELSE ' ASC' END ELSE '' END, c_Delimiter ORDER BY inx.No) FROM (SELECT i.indrelid, i.indexrelid,i.indisunique,i.indisprimary, i.indkey::SMALLINT[],i.indoption::SMALLINT[], generate_subscripts(i.indkey, 1) as No FROM pg_index i) inx INNER JOIN pg_class inxcls ON inx.indexrelid=inxcls.oid INNER JOIN pg_am inxam ON inxcls.relam=inxam.oid INNER JOIN pg_class tbl ON inx.indrelid=tbl.oid INNER JOIN pg_namespace nsp ON tbl.relnamespace=nsp.oid INNER JOIN pg_attribute attr ON attr.attrelid=tbl.OID AND attr.attnum=inx.indkey[inx.No] WHERE LOWER(nsp.nspname)=LOWER(a_SchemaName) AND LOWER(tbl.relname)=LOWER(a_TableName) GROUP BY inxcls.relname,inxam.amname,inx.indisunique,inx.indisprimary ORDER BY inxcls.relname;
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рджреЛрдиреЛрдВ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдо рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ 20 рдПрдордПрд╕ рд▓рд┐рдпрд╛ рдЧрдпрд╛ред
рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЕрдм рдлрд╝рдВрдХреНрд╢рди рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рдмрдирд╛рдКрдВрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЬреЛ рд▓реЛрдЧ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ рдЙрдирдХреА рдкрд╕рдВрдж рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд░реАрдореЗрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдореБрдЭрд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ рдореБрдлреНрдд рдореЗрдВ рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рднреЗрдЬреВрдВрдЧрд╛ ред
рдпрд╣ рднреА рджреЗрдЦреЗрдВ рдкрд╣рд▓реЗ , рддреАрд╕рд░реЗ рдФрд░ рдЪреМрдереЗ рд▓реЗрдЦ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред
рдкрд░рд┐рд╢рд┐рд╖реНрдЯ 1. рд▓рд┐рдкрд┐рдпреЛрдВ
Adtf_Table_Constraintes рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдирд╛
рдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВредрдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдХреЛрдб BEGIN TRANSACTION; DROP FUNCTION IF EXISTS admtf_Table_Constraintes (a_SchemaName NAME, a_TableName NAME); CREATE OR REPLACE FUNCTION admtf_Table_Constraintes (a_SchemaName name default 'public', a_TableName name default NULL ) RETURNS TABLE (r_ConstraintName NAME,r_ConstraintType NAME,r_ConstraintKeyNames Text,r_RefTableName NAME,r_RefTableKeyNames Text,r_ConstraintSource Text) AS $BODY$ DECLARE v_Scale INTEGER; v_ConstraintRec RECORD; v_TableOID INTEGER; v_ConstraintOID INTEGER; v_ConstraintKeyNos SMALLINT[]; v_ConstraintName name; v_ConstraintType name; v_isUnique BOOLEAN; v_isPrimary BOOLEAN; v_AttributeNum INTEGER; v_AttributeName name; v_ConstraintKeyNames TEXT; v_RefTableOID INTEGER; v_RefTableName name; v_RefTableKeyNos SMALLINT[]; v_RefTableKeyNames TEXT; v_ConstraintSource TEXT; c_Delimiter CONSTANT VARCHAR(2):=',';
рдПрдХ рдХрд░реНрд╕рд░ рдХреЗ рдмрд┐рдирд╛ admtf_Table_Constraintes рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдирд╛
рдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВредрдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдХреЛрдб BEGIN TRANSACTION; DROP FUNCTION IF EXISTS admtf_Table_Constraintes (a_SchemaName NAME, a_TableName NAME); CREATE OR REPLACE FUNCTION admtf_Table_Constraintes (a_SchemaName name default 'public', a_TableName name default NULL ) RETURNS TABLE (r_ConstraintName NAME,r_ConstraintType NAME,r_ConstraintKeyNames Text,r_RefTableName NAME,r_RefTableKeyNames Text,r_ConstraintSource Text) AS $BODY$ DECLARE v_Scale INTEGER; v_ConstraintRec RECORD; v_TableOID INTEGER; v_ConstraintOID INTEGER; v_ConstraintKeyNos SMALLINT[]; v_ConstraintName name; v_ConstraintType name; v_isUnique BOOLEAN; v_isPrimary BOOLEAN; v_AttributeNum INTEGER; v_AttributeName name; v_ConstraintKeyNames TEXT; v_RefTableOID INTEGER; v_RefTableName name; v_RefTableKeyNos SMALLINT[]; v_RefTableKeyNames TEXT; v_ConstraintSource TEXT; c_Delimiter CONSTANT VARCHAR(2):=',';
Adtf_Table_Indexes рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдирд╛
рдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВредрдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдХреЛрдб BEGIN TRANSACTION; DROP FUNCTION IF EXISTS admtf_Table_Indexes (a_SchemaName NAME, a_TableName NAME); CREATE OR REPLACE FUNCTION admtf_Table_Indexes (a_SchemaName NAME default 'public', a_TableName NAME default NULL ) RETURNS TABLE (r_IndexName NAME,r_IndexType NAME,r_isUnique BOOLEAN,r_isPrimary BOOLEAN, r_IndexKeyNames Text) AS $BODY$ DECLARE c_IndexKind CONSTANT CHAR:='i'; v_IndexRec RECORD; v_Scale INTEGER; v_TableOID INTEGER; v_IndexOID INTEGER; v_IndexKeyNos SMALLINT[]; v_IndexName NAME; v_IndexAMName NAME; v_isUnique BOOLEAN; v_isPrimary BOOLEAN; v_AttributeNum INTEGER; v_AttributeName NAME; v_IndexKeyNames TEXT; c_Delimiter CONSTANT VARCHAR(2):=',';
рдПрдХ рдХрд░реНрд╕рд░ рдХреЗ рдмрд┐рдирд╛ admtf_Table_Indexes рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдирд╛
. BEGIN TRANSACTION; DROP FUNCTION IF EXISTS admtf_Table_Indexes (a_SchemaName NAME, a_TableName NAME); CREATE OR REPLACE FUNCTION admtf_Table_Indexes (a_SchemaName NAME default 'public', a_TableName NAME default NULL ) RETURNS TABLE (r_IndexName NAME,r_IndexType NAME,r_isUnique BOOLEAN,r_isPrimary BOOLEAN, r_IndexKeyNames Text) AS $BODY$ DECLARE c_IndexKind CONSTANT CHAR:='i'; c_Delimiter CONSTANT VARCHAR(2):=', ';
PostgreSQL. ;PostgreSQL. .PostgreSQL. ( ) .