Ejemplo:
CREATE TABLE table (id int, nombre varchar);
CREATE SEQUENCE table_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 100
CACHE 1;
ALTER TABLE table_id_seq
OWNER TO postgres;
Insertando un registro:
INSERT INTO table (id, nombre) values (nextval('table_id_seq'), 'pio');
Si el campo id de table fue creado como tipo "serial" también inserta con default:
INSERT INTO table (id, nombre) values (default, 'pio');
Insertando registros desde otra tabla:
INSERT INTO table
(SELECT nextval('table_id_seq'), nombre2 FROM table2)
Asignando nuevo valor de inicio (START):
SELECT setval('table_id_seq', 700);
EL siguiente 'nextval' será 701
viernes, 11 de noviembre de 2016
lunes, 3 de octubre de 2016
vim / psql - asignar como editor por defecto
# Install vim and set as default editor
sudo apt-get install -y vim
sudo update-alternatives --set editor /usr/bin/vim.basic
UPDATE table FROM oooother table
Actualizando una tabla a partir de otra (Postgres)
update t2 set name = t1.name
from t1
where t1.k = t2.k
en el ejemplo el campo común k
update t2 set name = t1.name
from t1
where t1.k = t2.k
en el ejemplo el campo común k
Postgres - export/import en formato CSV
Export:
en windows:
COPY tablename(field_x, field_y, ..) to '\path\to\copy\file.csv' delimiters ',' csv header;
ó (Encoding si dificultades con acentos y caracteres especiales)
COPY tablename
TO 'c:\path\to\copy\file.csv'
WITH (FORMAT csv, HEADER, ENCODING 'WIN1252' )
COPY (select field_x, field_y from tablename where condition)
TO 'c:\path\to\copy\file.csv'
WITH (FORMAT csv, HEADER, ENCODING 'WIN1252' )
en linux:
COPY tablename(field_x, field_y, ..) TO '/path/to/copy/file.csv' delimiters ',' csv header;
Import (previamente se debe crear tabla con la estructura de campos requerida):
en linux:
\COPY tablename FROM ~/path/to/file.csv delimiter ',' csv header
Si errores en encoding:
\COPY tablename FROM ~/path/to/file.csv delimiter ',' csv header encoding 'WIN1252'
miércoles, 21 de septiembre de 2016
Postgres - Búsqueda con expresiones regulares
Encontrando caracteres 'extraños' en el 'campox' de 'tablax'
SELECT campox FROM tablax WHERE campo ~ '[^a-z^0-9^A-Z\(\)\sÑñÓáéíóú_.-]'
Update - corregir
UPDATE tablax SET campox= REPLACE(campox, '¥', 'Ñ') WHERE campox ~~ '%¥%'
SELECT campox FROM tablax WHERE campo ~ '[^a-z^0-9^A-Z\(\)\sÑñÓáéíóú_.-]'
Update - corregir
UPDATE tablax SET campox= REPLACE(campox, '¥', 'Ñ') WHERE campox ~~ '%¥%'
martes, 28 de junio de 2016
Backup de una tabla y Restore en otra bd
Backup en linux - ubuntu:
sudo -u postgres -i pg_dump -c -Fp -f /home/usr/baktables/tabla.sql -d bdname -t tabla
Verificar que la asignación de dueño de la tabla sea a un usuario válido si se recuperará en otra bd.
Restore en Win:
Desde psql y en la bd que se quiera recuperar:
\i d:/ruta/de/backup/tabla.sql
sudo -u postgres -i pg_dump -c -Fp -f /home/usr/baktables/tabla.sql -d bdname -t tabla
Verificar que la asignación de dueño de la tabla sea a un usuario válido si se recuperará en otra bd.
Restore en Win:
Desde psql y en la bd que se quiera recuperar:
\i d:/ruta/de/backup/tabla.sql
Suscribirse a:
Entradas (Atom)