gpt4 book ai didi

database - 如何将值插入 PostgreSQL 11.1 中的标识列

转载 作者:搜寻专家 更新时间:2023-10-30 22:05:44 24 4
gpt4 key购买 nike

我想将我自己的值插入到标识列。

表架构:

CREATE TABLE public.userdetail (
userdetailid int4 NOT NULL GENERATED ALWAYS AS IDENTITY,
username varchar(30) NOT NULL,
"password" varchar(1000) NOT NULL,
CONSTRAINT pk_userdetail PRIMARY KEY (userdetailid)
);

插入查询:

INSERT INTO UserDetail (UserDetailId,UserName, Password) 
VALUES(1,'admin', 'password');

此处插入查询抛出以下错误:

cannot insert into column "userdetailid"

是否有任何命令可以像 MS SQL 那样强制插入标识列:

 SET IDENTITY_INSERT UserDetail ON

如果您有任何解决方案,请告诉我。

最佳答案

GENERATED ALWAYS 告诉 Postgres 始终为标识列生成值。如果您尝试在此类列中插入值,Postgres 将抛出错误。

如果你想插入,你可以使用下面的查询

INSERT INTO UserDetail (UserName, Password) 
VALUES('admin', 'password');

如果你真的想插入到标识列,你可以使用 GENERATED BY DEFAULT 而不是 GENERATED ALWAYS。在这种情况下,如果您没有为标识列提供值,Postgres 将使用生成的值。

或者

您可以使用 OVERRIDING SYSTEM VALUE 如下所示

INSERT INTO UserDetail (UserDetailId,UserName, Password) 
OVERRIDING SYSTEM VALUE
VALUES(1,'admin', 'password');

关于database - 如何将值插入 PostgreSQL 11.1 中的标识列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55701029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com