PHP, JavaSCRIPT, PostgreSQL
JavaSCRIPT RAW bibliotekos demonstaracinė-testinė aplinka
ir kita, sukaupta per 15 metų, programavimo patirtis PostgreSQLSQL užklausos duomenų struktūrai gautiDuombazių sąrašas:SELECT datname FROM pg_database order by datname * Kiti duomenys prieinami tik prisijungus prie pažymėtos duomenų bazės:<?php $pg_connect_string = "host=localhost port=5432 dbname=".$db_name." user= password= "; ?> Lentelių sąrašas:select c.relname as table_name, c.relkind as ttip FROM pg_namespace n INNER join pg_class c ON c.relnamespace = n.oid WHERE ( c.relkind = 'r' or c.relkind = 'v' ) AND n.nspname = 'public' order by c.relkind, c.relname; Stulpelių pavadinimai ir tipai:SELECT a.attrelid, a.attname AS name, t.typname AS type, c.oid as tableoid, a.attnum as colnum ,c.oid as coid , a.attrelid as attrd , a.attlen , CASE WHEN ( a.attlen )>0 THEN '<span style=\"color:#404000;\"><em>'||( a.attlen )::text||'</em></span>' ELSE (' ')::text END AS size, CASE WHEN ( a.atttypmod - 4 )>0 THEN '<span style=\"color:#008080 ;\"><strong>'||( a.atttypmod - 4 )::text||'</strong></span>' ELSE (' ')::text END as len, --( a.atttypmod - 4 ) AS len, case when a.attnotnull then 'NOT NULL' else ' ' end AS nnull , CASE a.atttypid WHEN 21 /*int2*/ THEN 16 WHEN 23 /*int4*/ THEN 32 WHEN 20 /*int8*/ THEN 64 WHEN 1700 /*numeric*/ THEN CASE WHEN a.atttypmod = -1 THEN null ELSE ((a.atttypmod - 4) >> 16) & 65535 END WHEN 700 /*float4*/ THEN 24 WHEN 701 /*float8*/ THEN 53 ELSE null END AS numeric_precision, CASE WHEN a.atttypid IN (21, 23, 20) THEN 0 WHEN a.atttypid IN (1700) THEN CASE WHEN a.atttypmod = -1 THEN null ELSE (a.atttypmod - 4) & 65535 END ELSE null END AS numeric_scale FROM pg_attribute a , pg_class c, pg_type t WHERE a.attrelid = c.oid AND a.atttypid = t.oid and a.attnum > 0 and not a.attisdropped and c.relname = '$table_name' Indeksai:SELECT DISTINCT d.indisprimary, d.indisunique, d.indisclustered, d.indisvalid, i.relname, c.i, CASE WHEN d.indkey[c.i] = 0 THEN NULL ELSE a.attname END FROM pg_class AS i JOIN pg_index AS d ON d.indexrelid = i.oid JOIN pg_class AS t ON t.oid = d.indrelid JOIN pg_attribute AS a ON (a.attrelid = t.oid) JOIN generate_series(0, 9) AS c(i) ON d.indkey[c.i] IN (a.attnum, 0) WHERE t.relname = '$table_name' AND t.relnamespace IN (SELECT oid FROM pg_namespace WHERE nspname IN ('public')) Reikšmės pagal nutylėjimą:SELECT pc.relname as tablename , pat.attname as colname, pad.adsrc as default_value FROM pg_attrdef pad, pg_attribute pat, pg_class pc WHERE pc.oid=pat.attrelid AND pat.attrelid=pad.adrelid AND pat.attnum=pad.adnum AND pc.relname='".$table_name."' -- AND pat.attname='".$col_name."' Antrinei raktai (Foreign Keys):SELECT conname, pg_catalog.pg_get_constraintdef(r.oid, true) as condef FROM pg_catalog.pg_constraint r where r.conrelid = '$table_name'::regclass AND r.contype = 'f' ** Visi scriptai nukopijuoti nuo veikiančio šablonų generatoriaus | ||
Programavimas PHP, Javascript, PostgreSQL:
Tel.: +370 698 30482 [LT,RU], el. paštas: info@fromris.lt |