在PostgreSQL中创建表时遭遇42601错误,寻求解决方案
解决PostgreSQL创建自增主键表的42601语法错误
你遇到的42601是语法错误,原因是PostgreSQL不支持AUTO_INCREMENT关键字——这个语法是MySQL/MariaDB专属的。PostgreSQL里实现自增主键有两种常用方式:
方式一:使用SERIAL(传统兼容写法)
CREATE TABLE flashcards ( id SERIAL PRIMARY KEY, question VARCHAR(255) NOT NULL, answer TEXT NOT NULL, created TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL );
SERIAL会自动创建一个关联的序列对象,让id字段自动递增,效果和你要的AUTO_INCREMENT一致。
方式二:使用GENERATED AS IDENTITY(PostgreSQL 10+推荐的标准写法)
CREATE TABLE flashcards ( id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, question VARCHAR(255) NOT NULL, answer TEXT NOT NULL, created TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL );
这是SQL标准定义的自增字段语法,比SERIAL更灵活,支持更多自定义配置,是PostgreSQL新版本的推荐用法。
内容的提问来源于stack exchange,提问作者GEn Samaaa
相关产品推荐
相关产品推荐

