我正在使用PostgreSQL。我尝试创建一个主键列,该列是UUID类型,因此我运行了以下语句:
ALTER TABLE my_object_times ADD PRIMARY KEY (id) DEFAULT uuid_generate_v4();
但是我遇到了错误
PG::SyntaxError: ERROR: syntax error at or near "DEFAULT"
如何正确地编写上述语句(我正在执行 ALTER,因为我要更改现有的主键列)?
我正在使用PostgreSQL。我尝试创建一个主键列,该列是UUID类型,因此我运行了以下语句:
ALTER TABLE my_object_times ADD PRIMARY KEY (id) DEFAULT uuid_generate_v4();
但是我遇到了错误
PG::SyntaxError: ERROR: syntax error at or near "DEFAULT"
如何正确地编写上述语句(我正在执行 ALTER,因为我要更改现有的主键列)?
如果表中已经存在列id
,而您想通过将其设置为主键并添加默认值来进行修改,可以分为两个步骤完成:
ALTER TABLE my_object_times ADD PRIMARY KEY (id);
ALTER TABLE my_object_times ALTER COLUMN id SET DEFAULT uuid_generate_v4();
如果该列根本不存在,那么你可以通过简单地执行以下操作来创建具有所需所有属性的列:
ALTER TABLE my_object_times ADD id uuid PRIMARY KEY DEFAULT uuid_generate_v4();
(我现在无法测试,但应该可以正常工作)
uuid_generate_v4()
,您首先需要执行:
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";