Search Postgresql Archives

Re: unlooged tables

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Thu, Dec 6, 2012 at 7:08 AM, Igor Neyman <ineyman@xxxxxxxxxxxxxx> wrote:
> Is there any way to change “regular” table to “unlogged” without dropping
> said table and recreating it as unlogged?

AFAIK it is impossible currently.

The best way to do such transformation that comes to my mind is:

CREATE TABLE table1 (
    id bigserial PRIMARY KEY,
    data text
);

INSERT INTO table1 (data)
SELECT 'bla' || i::text
FROM generate_series(1, 10) AS i;

SELECT * FROM table1;

CREATE UNLOGGED TABLE tmp (LIKE table1 INCLUDING ALL);
ALTER TABLE table1 INHERIT tmp;

BEGIN;
ALTER TABLE table1 RENAME TO table1_old;
ALTER TABLE tmp RENAME TO table1;
END;

So new rows will be inserted into the new unlogged table and old rows
will be available from the old one.

INSERT INTO table1 (data)
SELECT 'bla' || i::text
FROM generate_series(11, 15) AS i;

UPDATE table1 SET data = 'mla' || i::text WHERE i <= 5;

SELECT * FROM table1;

And then all we need is move the data to the new table and finish with
the old one.

ALTER SEQUENCE table1_id_seq OWNED BY table1.id;

BEGIN;
INSERT INTO table1 SELECT * FROM table1_old;
DROP TABLE table1_old CASCADE;
END;

SELECT * FROM table1;

Correct me if I misunderstand something, please.

>
> Didn’t find the answer in the docs.  Looks like “alter table …” does not
> support “unlogged.
>
>
>
> TIA,
>
> Igor Neyman



--
Sergey Konoplev
Database and Software Architect
http://www.linkedin.com/in/grayhemp

Phones:
USA +1 415 867 9984
Russia, Moscow +7 901 903 0499
Russia, Krasnodar +7 988 888 1979

Skype: gray-hemp
Jabber: gray.ru@xxxxxxxxx


-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux