Ошибка с auto_increment при подключении к Postgres через psql и puTTY - PullRequest
0 голосов
/ 11 февраля 2012

Я получаю эту ошибку в замазке.Не уверен, почему, выглядит правильно для меня ...

psql:pierre.sql:10: ERROR:  syntax error at or near "AUTO_INCREMENT"
LINE 2:  c_id  INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
                                ^
psql:pierre.sql:18: ERROR:  syntax error at or near "AUTO_INCREMENT"
LINE 2:  r_id  INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,

--DROP TABLE customer, reservation;
CREATE TABLE customer(
    c_id        INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
    c_ref       VARCHAR(30) NOT NULL,
    f_name      VARCHAR(30) NOT NULL,
    l_name      VARCHAR(30) NOT NULL,
    address     VARCHAR(100) NOT NULL,
    email       VARCHAR(100) NOT NULL,
    phone       VARCHAR(11) NOT NULL
);
CREATE TABLE reservation(
    r_id        INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
    c_id        VARCHAR(30) NOT NULL REFERENCES customer(c_id),
    book_date   DATE NOT NULL CHECK (book_date <= now()),
    s_time      DOUBLE NOT NULL,
    e_time      DOUBLE NOT NULL,
    amount      INTEGER NOT NULL
);

Есть идеи, почему?

Ответы [ 2 ]

3 голосов
/ 11 февраля 2012

auto_increment выглядит так, как если бы вы использовали MySQL.

Но здесь, похоже, вы используете PostgreSQL.

В соответствии с разделом тип данных serial руководства, postgresql эквивалент auto_increment равен serial или bigserial.

Цитирование этой страницы:

Типы данных serial и bigserial невернытипы, но просто удобство обозначения для установки столбцов уникального идентификатора (аналогично свойству AUTO_INCREMENT, поддерживаемому некоторыми другими базами данных) .

0 голосов
/ 22 мая 2018

В Postgres 10 или более поздних рассмотрим столбец IDENTITY:

CREATE TABLE customer(
    c_id        INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
    ...

(PRIMARY KEY также делает его NOT NULL автоматически.)

Подробности:

В Postgres 9,6 или старше считают serial как Паскаль, уже предложенный .
Работает в pg 10 или более поздней версии, но IDENTITY, как правило, лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...