#postgresql
Вопрос:
Прежде всего, могу ли я отдать Varchar за первичный ключ? Вот моя таблица создания;
CREATE TABLE appinfo (
app_id VARCHAR (30) PRIMARY KEY,
app_secret VARCHAR ( 500 ) NOT NULL,
app_name VARCHAR ( 255 ) NOT NULL,
app_type VARCHAR ( 255 ) NOT NULL,
prog_lang VARCHAR ( 255 ) NULL,
description VARCHAR ( 255 ) NULL,
created_on TIMESTAMP NOT NULL DEFAULT NOW()
);
И я пытаюсь вставить значение ниже
INSERT INTO appinfo (app_id, app_secret, app_name, app_type)
VALUES ('ABC1', 'aaaaaaabbbbbbccccccccc', 'AccountInfoAPI', 'API');
но это показывает, что ниже ошибка;
ERROR: invalid input syntax for type integer: "ABC1"
LINE 2: VALUES ('ABC1', 'aaaaaaabbbbbbccccccccc', 'AccountInfoAPI...
Я очень новичок в Postgres, и я не уверен, откуда берется это целое число. Или это потому, что первичный ключ всегда целочислен в Postgres?
Комментарии:
1. Вы , очевидно, создали
app_id
себя какinteger
, а не как варчара, как вы утверждаете. Еслиapp_id
действительно объявлено какvarchar
, ваша вставка будет работать: dbfiddle.uk/…2. Вы уверены, что подключились к той же базе данных и/или схеме для таблицы создания и последующего запроса. Как указано, Postgres не имеет проблем с первичными ключами varchar .