Я новичок в PostgreSQL. Я пытался создать таблицы в базе данных, но некоторые запросы дают странные ошибки. первый фрагмент генерирует синтаксическую ошибку, но когда я добавляю «serial» в столбец проблемати c, ошибка устраняется. Должны ли все первичные ключи автоматически увеличиваться в PostgreSQL?
CREATE TABLE songplays(
songplay_id PRIMARY KEY, --This does not work, it throws syntax error at or near "PRIMARY"
start_time VARCHAR (50) NOT NULL,
user_id VARCHAR (50) NOT NULL,
level VARCHAR (355) UNIQUE NOT NULL,
song_id VARCHAR (50) NOT NULL NOT NULL,
artist_id VARCHAR (50) NOT NULL NOT NULL,
session_id VARCHAR (50) NOT NULL NOT NULL,
location VARCHAR (50) NOT NULL NOT NULL,
user_agent VARCHAR (50) NOT NULL NOT NULL
);
В этой работе добавлено последовательное ограничение для songplay_id
CREATE TABLE songplays(
songplay_id serial PRIMARY KEY,
start_time VARCHAR (50) NOT NULL,
user_id VARCHAR (50) NOT NULL,
level VARCHAR (355) UNIQUE NOT NULL,
song_id VARCHAR (50) NOT NULL NOT NULL,
artist_id VARCHAR (50) NOT NULL NOT NULL,
session_id VARCHAR (50) NOT NULL NOT NULL,
location VARCHAR (50) NOT NULL NOT NULL,
user_agent VARCHAR (50) NOT NULL NOT NULL
);