我对PostgreSQL还不熟悉。我一直在尝试在数据库中创建表,但有些查询会出现奇怪的错误。第一个代码片段会抛出语法错误,但当我在有问题的列上添加“serial”时,错误就得到解决了。在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
);