Re: Schemas and serials

From: marcelo <marcelo(dot)nicolet(at)gmail(dot)com>
To: Melvin Davidson <melvin6925(at)gmail(dot)com>, tel medola <tel(dot)medola(at)gmail(dot)com>
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: Schemas and serials
Date: 2017-07-30 16:36:11
Message-ID: 74cfd3e0-44c0-b353-e48d-8308b15140d2@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Melvin:

My example was somewhat inexact. The full question is as follows:
I need to have two groups of tables: the "reference" ones (examples:
city, country, customer) which will "reside" in the public schema, and
the transaccional ones, which will reside in a schema representing one
year/season. These table's definitions must be copied to a new schema at
the start of new year/season.
One of these tables create script could be as follows

/CREATE TABLE dailyprogram//
//(//
// id serial NOT NULL,//
// date timestamp without time zone NOT NULL,//
// packerid integer NOT NULL,//
// CONSTRAINT "PK_dailyprogram" PRIMARY KEY (id)//
//)//
//WITH (//
// OIDS=FALSE//
//);//
//ALTER TABLE dailyprogram//
// OWNER TO postgres;//
/
My reworded question is: if I run this sql in the new schema, the
implicit '/CREATE SEQUENCE dailyprogram_id_seq;/' statement will be
executed in the new schema, so the sequence will be reset to zero?

TIA

PS: Of course, I considered the other option: to have a table
representing the seasons, and every main transactional table with a
foreign key to this season table, but it add a level of indirection to a
database which is now very convoluted.

On 29/07/17 17:17, Melvin Davidson wrote:
>
> On Sat, Jul 29, 2017 at 3:38 PM, tel medola <tel(dot)medola(at)gmail(dot)com
> <mailto:tel(dot)medola(at)gmail(dot)com>> wrote:
>
> Depends.
> When you create your tables in new schema, the script was the same
> from "qa"?
> Sequences, tables, etc.. belong to the schema where was created.
>
> Roberto.
>
> Em sáb, 29 de jul de 2017 às 16:17, marcelo
> <marcelo(dot)nicolet(at)gmail(dot)com <mailto:marcelo(dot)nicolet(at)gmail(dot)com>>
> escreveu:
>
> Some days ago I asked regarding tables located in different
> schemas.
> Now, my question is
> Suppose I have two schemas (other than public): "qa" and
> "production".
> Initially I create all my tables in "qa". All of them have a
> primary key
> of type serial.
> Later, I will copy the tables definitions to production.
> It will automatically create the sequences in the new schema,
> starting
> at zero?
> TIA
> Marcelo
>
>
> --
> Sent via pgsql-general mailing list
> (pgsql-general(at)postgresql(dot)org
> <mailto:pgsql-general(at)postgresql(dot)org>)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
> <http://www.postgresql.org/mailpref/pgsql-general>
>
>
> *Marcelo,
> >Initially I create all my tables in "qa". All of them have a primary
> key of type serial.
> >Later, I will copy the tables definitions to production.
>
> *
> *A word of caution, creating tables in a qa "schema" and then
> transferring to production is not the normal/correct (or safe) way to
> do development.
> *
> *The standard procedure is to create a seperate "qa" database (and/or
> server) with the exact same schema(s) as production. Then, after testing
> *
> *is completed, the schemas/tables are copied to production.
> *
>
> --
> *Melvin Davidson*
> I reserve the right to fantasize. Whether or not you
> wish to share my fantasy is entirely up to you.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Gabriel Furstenheim Milerud 2017-07-30 16:47:00 Re: Executing regex in C code
Previous Message Tom Lane 2017-07-30 16:26:19 Re: Executing regex in C code