Nay*_*ani 7 database postgresql
我想将我自己的值插入到身份列中。
表架构:
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)
);
Run Code Online (Sandbox Code Playgroud)
插入查询:
INSERT INTO UserDetail (UserDetailId,UserName, Password)
VALUES(1,'admin', 'password');
Run Code Online (Sandbox Code Playgroud)
这里插入查询抛出以下错误:
无法插入“userdetailid”列
是否有任何命令可以强制插入到身份列,如 MS SQL:
SET IDENTITY_INSERT UserDetail ON
Run Code Online (Sandbox Code Playgroud)
如果您有任何解决方案,请告诉我。
Fat*_*n P 15
GENERATED ALWAYS告诉 Postgres 总是为标识列生成值。如果您尝试在这样的列中插入值,Postgres 将抛出错误。
如果要插入,可以使用以下查询
INSERT INTO UserDetail (UserName, Password)
VALUES('admin', 'password');
Run Code Online (Sandbox Code Playgroud)
如果你真的想插入到标识列,你可以使用GENERATED BY DEFAULT代替GENERATED ALWAYS。在这种情况下,如果您没有为标识列提供值,Postgres 将使用生成的值。
或者
您可以使用OVERRIDING SYSTEM VALUE如下所示
INSERT INTO UserDetail (UserDetailId,UserName, Password)
OVERRIDING SYSTEM VALUE
VALUES(1,'admin', 'password');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8733 次 |
| 最近记录: |