3 postgresql uuid default primary-key
我正在使用PostgreSQL.我正在尝试创建一个主键列taht是一个UUID,所以我运行了这个语句
ALTER TABLE my_object_times ADD PRIMARY KEY (id) DEFAULT uuid_generate_v4();
Run Code Online (Sandbox Code Playgroud)
但我得到了错误
PG::SyntaxError: ERROR: syntax error at or near "DEFAULT"
Run Code Online (Sandbox Code Playgroud)
编写上述语句的正确方法是什么(我正在改变,因为我正在更改现有的主键列)?
如果该列id已存在于表中,并且您希望通过将其作为主键并添加默认值来对其进行修改,则可以分两步执行:
ALTER TABLE my_object_times ADD PRIMARY KEY (id);
ALTER TABLE my_object_times ALTER COLUMN id SET DEFAULT uuid_generate_v4();
Run Code Online (Sandbox Code Playgroud)
如果该列根本不存在,那么您可以使用所需的所有属性创建它,只需执行以下操作:
ALTER TABLE my_object_times ADD id uuid PRIMARY KEY DEFAULT uuid_generate_v4();
Run Code Online (Sandbox Code Playgroud)
(我现在无法测试,但它应该工作)