Installare Pgadmin 4 versione 2.0 in debian 9 – Python Wheel

pgAdmin è la più popolare e completa applicazione open source per l’amminstrazione di postgresql….

La versione 4.0 di Pgadmin è stata completamente riscritta usando Python,  Jquery e Bootstrap e il framework Flask. E’ disponibile in forma di applicazione desktop in  C++ con Qt e come applicazione web.
La precedente versione Pgadmin III non è al momento più supportata.
In ottobre 2017 è stata rilasciata la versione 2.0 di pgAdmin  4.0 .

Installare pgadmin 4 v 2.0 in debian 9.xx come web application modalità desktop

Per installare  pgadmin 4 in debian come applicazione web è necessario installare una serie di pacchetti per avere a disposizione Python e in particolare un Python Virtual Environment.

# su
# apt-get install build-essential libssl-dev libffi-dev libgmp3-dev virtualenv python-pip libpq-dev python-dev

Si può controllare la versione di python disponibile con

# python -V
  Python 2.7.13

Creare l’ambiente virtuale python 

Si può creare l’ambiente virtuale nella directory /opt utilizzando ad esempio  la directory py-env

# cd /opt
# mkdir py-env

creiamo l’ambiente virtuale python

# virtualenv pgadmin4.2
# cd pgadmin4.2
# source bin/activare

Download e installazione pgadmin4 python wheel

Effettuare il download di pgadmin 4 v.2  python Wheel con

# wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v2.0/pip/pgadmin4-2.0-py2.py3-none-any.whl

e installare con

# pip install pgadmin4-2.0-py2.py3-none-any.whl

Creare il file di configurazione locale di pgadmin4

per utilizzare pgadmin4 in modalità single user

# touch lib/python2.7/site-packages/pgadmin4/config_local.py
# echo "SERVER_MODE = False" >> lib/python2.7/site-packages/pgadmin4/config_local.py

Avviare pgadmin4 v 2.0 come web application

per avviare usare il comando python lib/python2.7/site-packages/pgadmin4/pgAdmin4.py

(pgadmin4.2) root@deb9:/opt/py-env/pgadmin4.2# python lib/python2.7/site-packages/pgadmin4/pgAdmin4.py
 Starting pgAdmin 4. Please navigate to http://127.0.0.1:5050 in your browser.

Come indicato nel messaggio che appare a terminale puntare il browser all’indirizzo locale 127.0.0.1 porta 5050 è si avrà a disposizione la web application

Risorse posts/pagine utili :

Postgresql :

 

Annunci

installare Postgresql 9.6 su Centos 7.4 64 bit

postgresql  go to:  PostgreSQL nel blog 

Default postgresql server in Centos 7 x86 64 is version 9.2.x

to install postgresql 9.6.x use   Postgresl yum repository.

https://www.postgresql.org/download/linux/redhat/

su -

Download and install the yum rpm PostgreSQL Repository

yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

We can use yum list to check the package now available.

yum list postgresql*

you have to see many postgresql96 packages

Install, inizialize and start postgresql 9.6.

install the client

yum install postgresql96

Install th server postgresql 9.6 with contrib package.

yum install postgresql96-server postgresql94-contrib

Than we initialize and start postgresql-9.6

#/usr/pgsql-9.6/bin/postgresql96-setup initdb
Initializing database ... OK
# systemctl enable postgresql-9.6
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-9.6.service to /usr/lib/systemd/system/postgresql-9.6.service.

# systemctl start postgresql-9.6

postgresql-9.6 /bin /lib /doc /share are in directory

/usr/pgsql-9.6

postgresql-9.6 data are in directory

/var/lib/pgsql/9.6

check that everything is OK

su - postgres  
pslq -l

we have to see a list of 3 databases

Firewall

Open postgresql port 5432 in Iptables Firewall

with editord vi, cmedit nano edit file /etc/sysconfig/iptables  :
vi -w /etc/sysconfig/iptables

# add next commit row

-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT

restart iptables firewall

Configure postgres set superuser postgres password

# switch to postgres user

  su - postgres

# open postgresql cli as postgres and connect to the postgres database

  psql postgres

# set the password of user postgres using alter

 ALTER USER postgres WITH PASSWORD 'your-postgres-password';

Setting pg_hba.conf
pg_hba.conf say postgresql which users can access which databases and how they can do. ( centos/redhat location /var/lib/pgsql/9.4/data/pg_hab.conf)

so we change METHOD to md5 for IPv4 and IPv5 local connections
then we can add other ipv4 connection as

host    all         all         192.168.1.0/24        md5

at the end we can have something like this

# TYPE  DATABASE    USER        CIDR-ADDRESS               METHOD                    
                                                                                
# "local" is for Unix domain socket connections only                            
local   all         all                                      peer    
# IPv4 local connections:                                                       
host    all         all           127.0.0.1/32               ident
host    all         all           192.168.1.0/24             md5      
# IPv6 local connections:                                                       
host    all         all           ::1/128                    ident                     
# Allow replication connections from localhost, by a user with the              
# replication privilege.                                                        
#local   replication     postgres                            peer           
#host    replication     postgres        127.0.0.1/32        ident          
#host    replication     postgres        ::1/128             ident  

In order for the change to take effect we have to

reload pg_hba.conf
from the postgresql cli

 postgres=# select pg_reload_conf();

from the shell as postgres user ( su – postgres ) pg_ctl reload

Setting postgresq.conf
In this file we can configure remote access to postgresql
(centos/redhat location: /var/lib/pgsql/9.4/data/postgresql.conf  )

look for listen_address in connections and authentication section.
to enable remote connections uncomment and change listen_address that by default is ‘localhost’ so access is limited to local machine.
So at the and listen_addresses look like*

listen_addresses = '*'

It is possible to set the listen_address to specific IPs using a comma separate list.

Restart postgresql con

servicectl  postgresql restart

Now if you want you can change post value

port=  5432
Change port value 
Default port value for postgresql is 5432
Usually to change port value (ex:5433 ) we have to uncomment and to modify
# port= 5432
to
port= 5433
in Centos 7 we have to do another step we have to create the file /etc/sysconfig/pgsql/postgresql-9.4 with
PGPORT=5433
export PGPORT
touch /etc/sysconfig/pgsql/postgresql-9.6
echo ‘PGPORT=5433’ >> /etc/sysconfig/pgsql/postgresql-9.6
echo ‘export PGPORT’ >> /etc/sysconfig/pgsql/postgresql-9.6

If port change you have to change iptables firewall setting and restart postgresql.

we can check changes in postgesql cli :

# show listen_addresses;
# show port;

we can also do another check as root with

# netstat -nxl | grep PGSQL
netstat -nlp | grep PGSQL
unix 2 [ ACC ] STREAM LISTENING 263035 /var/run/postgresql/.s.PGSQL.5432
unix 2 [ ACC ] STREAM LISTENING 263037 /tmp/.s.PGSQL.5432

and

# netstat -nlp | grep 5432
netstat -nlp | grep 5432
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 28083/postmaster 
tcp6 0 0 :::5432 :::* LISTEN 28083/postmaster 
unix 2 [ ACC ] STREAM LISTENING 263035 28083/postmaster /var/run/postgresql/.s.PGSQL.5432
unix 2 [ ACC ] STREAM LISTENING 263037 28083/postmaster /tmp/.s.PGSQL.5432

Postgres blog’s post:

installare Postgresql 9.4 su Centos 6.7 64 bit

postgresql  go to:  PostgreSQL nel blog 

Default postgresql server in Centos 6.7 x86 64 is version 8.4.x

to install postgresql 9.4.4 use   Postgresl yum repository.  .

su -

Download and install the yum rpm PostgreSQL Repository

wget http://yum.pgrpms.org/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-1.noarch.rpm

rpm -i pgdg-centos94-9.4-1.noarch.rpm

We can use yum list to check the package now available.

yum list postgresql*

you have to see many postgresql94 packages

Install, inizialize and start postgresql 9.4.

yum install postgresql94 postgresql94-server postgresql94-libs postgresql94-contrib

Than we initialize and start postgresql-9.4

service postgresql-9.4 initdb 

service postgresql-9.4 start

check that everything is OK

su - postgres  
pslq -l

we have to see a list of 3 databases

Open postgresql port 5432 in Iptables Firewall

with editord vi, cmedit nano edit file /etc/sysconfig/iptables  :
vi -w /etc/sysconfig/iptables

# add next commit row

-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT

restart iptables firewall

service iptables restart

Configure postgres set superuser postgres password

# switch to postgres user

  su - postgres

# open postgresql cli as postgres and connect to the postgres database

  psql postgres

# set the password of user postgres using alter

 ALTER USER postgres WITH PASSWORD 'your-postgres-password';

Setting pg_hba.conf
pg_hba.conf say postgresql which users can access which databases and how they can do. ( centos/redhat location /var/lib/pgsql/9.4/data/pg_hab.conf)

so we change METHOD to md5 for IPv4 and IPv5 local connections
then we can add other ipv4 connection as

host    all         all         192.168.1.0/24        md5

at the end we can have something like this

# TYPE  DATABASE    USER        CIDR-ADDRESS               METHOD                    
                                                                                
# "local" is for Unix domain socket connections only                            
local   all         all                                      peer    
# IPv4 local connections:                                                       
host    all         all           127.0.0.1/32               ident
host    all         all           192.168.1.0/24             md5      
# IPv6 local connections:                                                       
host    all         all           ::1/128                    ident                     
# Allow replication connections from localhost, by a user with the              
# replication privilege.                                                        
#local   replication     postgres                            peer           
#host    replication     postgres        127.0.0.1/32        ident          
#host    replication     postgres        ::1/128             ident  

In order for the change to take effect we have to

reload pg_hba.conf
from the postgresql cli

 postgres=# select pg_reload_conf();

from the shell as postgres user ( su – postgres ) pg_ctl reload

Setting postgresq.conf
In this file we can configure remote access to postgresql
(centos/redhat location: /var/lib/pgsql/9.4/data/postgresql.conf  )

look for listen_address in connections and authentication section.
to enable remote connections uncomment and change listen_address that by default is ‘localhost’ so access is limited to local machine.
So at the and listen_addresses look like

listen_addresses = '*'

It is possible to set the listen_address to specific IPs using a comma separate list.

Restart postgresql con

service postgresql restart

Now if you want you can change post value

port=  5432
Change port value 
Default port value for postgresql is 5432
Usually to change port value (ex:5433 ) we have to uncomment and to modify
# port= 5432
to
port= 5433
in Centos 6.7 we have to do another step we have to create the file /etc/sysconfig/pgsql/postgresql-9.4 with
PGPORT=5433
export PGPORT
touch /etc/sysconfig/pgsql/postgresql-9.4
echo ‘PGPORT=5433’ >> /etc/sysconfig/pgsql/postgresql-9.4
echo ‘export PGPORT’ >> /etc/sysconfig/pgsql/postgresql-9.4

If port change you have to change iptables firewall setting and restart postgresql.

Now we configure postgresql 9.4.x service to start at boot

Check

$ chkconfig --list | grep postgresql*
postgresql-9.4 	0:off	1:off	2:off	3:off	4:off	5:off	6:off

Setting

chkconfig --level 35 postgresql-9.4 on
chkconfig --list | grep postgres*
postgresql-9.4 	0:off	1:off	2:off	3:on	4:off	5:on	6:off

we can check changes in postgesql cli :

# show listen_addresses;
# show port;

we can also do another check as root with

netstat -nxl | grep PGSQL

and

netstat -nlp | grep 5432
netstat -nlp | grep 5432
tcp        0      0 127.0.0.1:5432              0.0.0.0:*                   LISTEN      3221/postmaster     
tcp        0      0 ::1:5432                    :::*                        LISTEN      3221/postmaster     
unix  2      [ ACC ]     STREAM     LISTENING     1592992 3221/postmaster     /tmp/.s.PGSQL.5432

Postgres blog’s post:

Mysql contro Postgresql

postgresql

MySQL e PostgreSQL sono i due database relazionali  open source più  utilizzati e 

mysqllogo

conosciuti. Lo sviluppo iniziale dei due database ha avuto obiettivi diversi. Mysql ha privilegiato la velocità, l’essenzialità mentre Postgresql l’aderenza agli standard e la completezza rendendo disponibili  diverse funzionalità anche se al prezzo di performance inferiori. Ancora per postgresql si affermava che gli sviluppatori di postgresql erano animati dall’obiettivo di portare in ambito open-source un database con l’impostazione dei database di Oracle ( “open-source” Oracle) . Grazie alla velocità e all’essenzialità, che in alcuni ambiti diventà semplicità, Mysql storicamente è stata la prima scelta nelle applicazioni web appoggiate a database.  Non va trascurato poi che Mysql è entrato nella “scuderia” Oracle.

Nel tempo la situazione si è andata modificando ed oggi i due prodotti stanno in qualche modo convergendo nel senso che le prestazioni di Postgresql sono decisamente migliorate mentre Mysql si è aricchito di funzioni. MySQL ( oggi alla versione 5.6)  rimane comunque il più utilizzato e se una volta lo era per la velocità e la praticità ora lo è per l’ampio numero di progetti in cui è estrato a far parte. Infatti quasi tutte le web application si basano o prevedono la possibilità di scelta di MySQL come database. PostreSQL ( oggi alla versione 9.3.1)  dal canto suo offre comunque una protezione dei dati superiore grazie al rispetto degli standard cosa che non accade con MySQL. Per gli sviluppatori di postgresql affidabilità e integrità dei dati rimangono un obiettivo irrinunciabile.

Architettura

Per quanto riguarda il funzionamento MySQL dispone di un strato SQL mentre può utilizzare più engine dati. Ad esempio il motore di archiviazione myISAM  può essere scelto per situazioni con  maggiore concorrenza in lettura e che non richiedono proprietà ACID. InnoDB per avere il supporto ACID anche se non completo.  Invece Postgresql è un database server unificato con un unico  motore di archiviazione.

Al momento gli elementi distintivi che più contraddistinguono i due e che vanno valutati nella scelta di un database SQL opensource sono l’aderenza agli standard SQL, la conformità ACID e la necessità di usare una piattaforma LAMP. Come affermato in premessa l’aderenza alla normativa ISO è sempre stata un tratto distintivo di postgresql. Quindi se si ha la necessità di sviluppare un progetto che abbia questa caratteristica postgresql diventa la prima scelta.

Porting

Se si desidera la possibilità di trasferimento (porting) del progetto, perchè è cresciuto molto, su database Oracle. Postgresql, rispettando  gli standard ISO per SQL, rende il passaggio sufficentemente agevole. Con MySQL questo non sarà possibile poichè non é conforme agli standard ISO e non segue l’impostazione ACID  Atomicità, Coerenza, Isolamento e Durabilità sono le proprietà logiche che devono contraddistinguere le transazioni) . Nel caso di MySQL il trasferiemento può richiedere una pesante riscrittura del progetto. LAMP e Riutilizzo del Codice Molti progetti girano sul LAMP (Linux, Apache, MySQL, PHP/Pearl/Python) web applications come WordPress, Joomla, Mediawiki, …. si appoggiano preferibilmente su MySQL. Molte di queste applicazioni non prevedono la possibilità di utilizzare postgresql pertanto la scelta operata a questo livello condiziona la scelta del database. Per quanto riguarda la possibilità di riutilizzo di codice va evidenziato che esiste molto più materiale, codice a disposizione per MySQL che per postresql proprio per l’ampia dissusione dello stesso nelle web applicaiton. Risorse:

Per un confronto più articolato : MySQL vs PostgreSQL – WikiVS

Nel blog:

Risorse:

Installare Adminer 3.6.3 in Ubuntu 12.04 server

adminer-logoRilasciata in gennaio la versione 3.6.3 di Adminer una interfaccia di amministrazione per database SQL caratterizzata da pulizia ed efficacia oltre a MySQL, supporta PostgreSQL, SQLite, MS SQL, Oracle. A differenza di phpAdmin consiste in un unico file php.

adminer login postgresql
adminer login postgresql

Disponibile anche Adminer-editor un interfaccia user-friendly e di facile utilizzo per editing dei dati dei database per l’utente finale. Adminer e Adminer editor dispongono di plugins e  skins.

Installare Adminer

Per installare adminer in Ubuntu 12.04 è necessario avere installato mysql-server, apache2 e php. Sono necessari anche i moduli php per i database con i quali si intende interagire. Ad esempio
per amministrare mysql dovrà essere installato il modulo php5-mysql, mentre per postgresql è necessario il modulo php5-pgadmin.

I moduli possono essere installati con

sudo apt-get install php5-mysql php5-pgsql

Creare la directory /usr/share/adminer

sudo  mkdir /usr/share/adminer
sudo  cd /usr/share/adminer

scaricare l’ultima versione di adminer

sudo wget "http://www.adminer.org/latest.php"

creare un link simbolico adminer.php

sudo ln -s latest.php adminer.php

Configurare apache perchè utilizzi adminer utilizzando echo e quindi riavviare apache2

echo "Alias /adminer.php /usr/share/adminer/adminer.php" > /etc/apache2/conf.d/adminer.conf

service apache2 restart

Adminer mysql

Disinstallare Adminer

Per disinstallare adminer  rimuovere la directory /adminer e il suo contenuto

sudo  rm -R /usr/share/adminer

rimuovere anche il file di configurazione apache2 e riavvare il web server

sudo rm /etc/apache2/conf.d/adminer.conf
service apache2 restart

Risorse:

 

Upgrade postgresql 8.4.13 to postrgesl 9.2 centos 5

postgresql  vai a:  PostgreSQL nel blog 

Esempio di upgrade di postgresql dalla versione 8.4.13 alla versione 9.2.6 in Centos 5.8.  L’upgrade di versione necessita della fase di dump/restore oppure dell’utilizzo di pg_upgrade ( questo dalla versione 9.0) per consentire la migrazione della base dati alla nuova versione.  Per poter utilizzare il pg_update deve essere supportata l’esecuzione in parallelo di postgresql come avviene in debian o Centos 6. Centos 5 putroppo non la supporta pertanto sarà necessario utilizzare il dump/restore.

Creare una directory di backups, procedere al dump degli oggetti globali (roles e tablespaces) e di tutto il server, volendo si possono salavare in automatico i singoli db:

mkdir /home/pgsqlbck
chown postgres:postgres /home/psqlbck
su - postgres
pg_dumpall --globals-only > /home/pgsqlbck/dump-data_globals.sql 
pg_dumpall > /home/pgsqlbck/dump-data_alldb.sql
exit

I singoli db di postgresql 8.4 possono essere copiati utilizzando lo script nel link di seguito

Script per il backup dei database di postgresql

Fermiamo il servver postgresql

service postgresql stop
Visto che si tratta di upgrade di versione con cambi nella struttura dei dati possiamo conservare la directory dei dati di PostreSQL /var/lib/pgsql/data oppure al termine dell’upgrade rimuoverla

Per installare la nuova versione di postgresql utilizziamo  il repository yum per rpm. Nella pagina sotto  linkata sono disponibili le varie combinazioni di distribuzione e versione postgresql

PostgreSQL RPM Repository (with Yum)

Installiamo il repository di postgresql 9.2 per  centos 5 – i386

cd /usr/local/src
wget http://yum.pgrpms.org/9.2/redhat/rhel-5-i386/pgdg-centos92-9.2-6.noarch.rpm
rpm -ivh pgdg-centos92-9.2-6.noarch.rpm

Adesso escludiamo postgrsql dal processo standard di update dei pacchetti editando il file etc/yum.repos.d/CentOS-Base.repo aggiungendo la riga

exclude=postgresql*'

nelle sezioni [base] [updates]

ad esempio nella sezione base il risultato sarà del tipo:

[base]                                                                                         
name=CentOS-$releasever - Base 
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os 
gpgcheck=1               
...
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5   
exclude=postgresql*

Controlliamo i pacchetti disponibili

yum list | grep ‘postgresql’

nella lista saranno presenti pacchetti  postgres84 versione installata e i pacchetti della versione 92  di postgresql

postgresql84.i386                        8.4.13-1.el5_8                installed
postgresql84-contrib.i386                8.4.13-1.el5_8                installed
.....
postgresql92.i386                        9.2.2-1PGDG.rhel5             pgdg92   
postgresql92-contrib.i386                9.2.2-1PGDG.rhel5             pgdg92   
postgresql92-debuginfo.i386              9.2.2-1PGDG.rhel5             pgdg92

adesso rimuoviamo la versione precedente postgresql84

yum remove postgresql84*

installiamo la versione postgresql92

yum install postgresql92 postgresql92-server postgresql92-contrib postgresql92-libs

inizializziamo la base dati e avviamo il server postgresql-9.2

service postgresql-9.2 initdb

service postgresql-9.2 start

le basi dati di postgresql in Cenrtos sono localizzate in /var/lib/psql

:</var/lib/pgsql>$ ls -lhG
drwx------ 4 postgres 4.0K Dec 28 12:20 9.2
drwx------ 12 postgres 4.0K Dec 28 11:21 data

/data per il postgresql base e ovviamente /9.2 per la versione che si sta installando

su - postgres
psql < /home/pgbck/dumpalldb.sql

Ripristinare le modifiche ai files di configurazione /var/lib/pgsql/data/*.conf
in particolare postgresql.conf e pg_hba.conf

il file pg_hba.conf con le vecchie impostazioni relative alla autenticazione dei client, cioè il file che controllare quale host accede è a che cosa, può essere copiato dal precedente cluster che era stato rinominato:

cp /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/9.2/data/pg_hba.conf

per essere in linea con le nuove caratteristiche di postgresql 9.2 appendiamo il seguente nuovo blocco commentato, presente di default nel file pg_hba.conf della versione 9.2

# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 ident
#host replication postgres ::1/128 ident

La modifica può essere apportata utilizzando echo con comandi riportati di seguito. Possiamo usare tail -f pg_hba.conf su altro temrinale per seguire le modifiche in real time apportate a pg_hba.conf

:
cd /var/lib/pgsql/9.2/data
su postgres
echo '# Allow replication connections from localhost, by a user with the' >> pg_hba.conf 
echo '# replication privilege.' >> pg_hba.conf
echo '#local   replication     postgres                                peer' >> pg_hba.conf
echo '#host    replication     postgres        127.0.0.1/32            ident' >> pg_hba.conf 
echo '#host    replication     postgres        ::1/128                 ident' >> pg_hba.conf

possiamo anche modificare il permesso ident in peer della condizione

:
# TYPE  DATABASE        USER            ADDRESS                 METHOD                                                               

# "local" is for Unix domain socket connections only                                                                                 
local   all             all                                     ident

in

:                                                                            
local   all             all                                     peer 

riavviamo

service postgresql-9.1 restart

controlliamo il risultato scorrendo la lista dei db importati

su - postgres

vacuumdb --all --analyze-only
psql
\l

controlliamo e Impostiamo l’avvio automatico e il runlevel per il servizio postgresql 9.2

$ chkconfig --list | grep postgresql*
postgresql-9.2 	0:off	1:off	2:off	3:off	4:off	5:off	6:off

ora impostiamo l’avvio automatico con

chkconfig --level 35 postgresql-9.2 on

Altri post e risorse:

postgresql : Eseguire una SQL UPDATE query di test

In diverse circostanze risutla utile eseguire una query di UPDATE in modalità test senza che le modifiche vengano salvate e  diventino persistenti.

Per realizzare una query UPDATE di tipo test in postgresql può essere usato il seguente schema:

BEGIN;
UPDATE .........  ;
SELECT  .......   ;
ROLLBACK  ;

Di seguito un esempio pratico

BEGIN;
UPDATE esf SET 
 "IDUser" = esf.itemid WHERE 
 esf.email IN ( SELECT esf.email 
 -- SELECT contacts.itemid, contacts.confirmdate, contacts.email, esf.itemid AS e_itemid, esf.email AS e_email
 FROM contacts
 LEFT JOIN esf ON contacts.email::text = esf.email::text
 WHERE contacts.email::text = esf.email::text
 ORDER BY esf.createddate ) ;
SELECT"IDUser" FROM esf WHERE "IDUser" > 0 ;
ROLLBACK;

Esempio semplice

BEGIN ;
UPDATE esf SET "Organization" = company ;
SELECT "Organization" FROM esf WHERE "Organization" is NOT NULL ;
ROLLBACK ;

Altro esempio di sql query di test utilizzando query tools di pgadmin3 in postgresql  con le istruzioni di test roolback incluso disabilitare con il comment  —

Query tool pgadmin3

-- BEGIN; 

UPDATE esf SET 
   "itemid" = contacts.itemid 
   FROM contacts 
   WHERE esf.email = contacts.email AND
   esf.email IN 
   ( SELECT esf.email       
       FROM contacts 
       LEFT JOIN esf ON contacts.email::text = esf.email::text
       WHERE contacts.email::text = esf.email::text AND esf.id < 2000
       ORDER BY esf.createddate ) ;  

-- SELECT"itemid" FROM esf WHERE "itemid" < 22000 ; 

-- ROLLBACK;

sql UPDATE comando base

UPDATE contacts
SET firstname=name, lastname= name
WHERE firstname IS NULL AND name IS NOT NULL AND itemid < 100
 UPDATE sales
 SET payterms =
       CASE
          WHEN (SELECT SUM(qty) FROM sales s1
              WHERE sales.stor_id = s1.stor_id) < 10
             THEN 'On Billing'
         WHEN (SELECT SUM(qty) FROM sales s1
               WHERE sales.stor_id = s1.stor_id) < 100
              THEN 'Net 30'
        ELSE 'Net 60'
        END

INSERT INTO sitepage
SELECT sitepage_backup.*
FROM sitepage_backup
WHERE sitepage_backup."IDpage" = 442

Pagina riepilogativa

Query SQL  – PostgreSQL

Postgresql 

query di tipo plpgsql 

Creare eliminare database e tabelle