Обсуждение: Update to equivalent SQL in 8.1.4. Serial Types

Поиск
Список
Период
Сортировка

Update to equivalent SQL in 8.1.4. Serial Types

От
PG Doc comments form
Дата:
The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/11/datatype-numeric.html
Description:

In 8.1.4. Serial Types it says that 

CREATE TABLE tablename (
    colname SERIAL
);

is equivalent to

CREATE SEQUENCE tablename_colname_seq;
CREATE TABLE tablename (
    colname integer NOT NULL DEFAULT nextval('tablename_colname_seq')
);
ALTER SEQUENCE tablename_colname_seq OWNED BY tablename.colname;

Since Postgres 10, the datatype of the automatically-created sequence
matches the datatype of the serial column. But the default type for
CREATE SEQUENCE remains as bigint. So the second block should start with
the line

CREATE SEQUENCE tablename_colname_seq AS INTEGER;

Re: Update to equivalent SQL in 8.1.4. Serial Types

От
Peter Eisentraut
Дата:
On 2019-02-20 13:47, PG Doc comments form wrote:
> CREATE TABLE tablename (
>     colname SERIAL
> );
> 
> is equivalent to
> 
> CREATE SEQUENCE tablename_colname_seq;
> CREATE TABLE tablename (
>     colname integer NOT NULL DEFAULT nextval('tablename_colname_seq')
> );
> ALTER SEQUENCE tablename_colname_seq OWNED BY tablename.colname;
> 
> Since Postgres 10, the datatype of the automatically-created sequence
> matches the datatype of the serial column. But the default type for
> CREATE SEQUENCE remains as bigint. So the second block should start with
> the line
> 
> CREATE SEQUENCE tablename_colname_seq AS INTEGER;

fixed

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services