Apache DBUtils QueryRunner 从插入中的错误列返回 ID
Apache DBUtils QueryRunner returning ids from wrong column in insert
我正在使用 Apache DBUtils
Long rowId = queryRunner.insert(sql, new ScalarHandler<Long>(), params);
我的 table 架构是
CREATE TABLE abc
(
userid bigint,
api_key text,
key_id integer NOT NULL DEFAULT nextval('api_keys_key_id_seq'::regclass),
CONSTRAINT api_keys_pkey PRIMARY KEY (key_id),
CONSTRAINT userid_fkey FOREIGN KEY (userid)
REFERENCES public.users (userid) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
问题是 rowId
来自 userid
列,其中 table 的主键是 key_id
,我希望插入查询的返回 ID 来自 key_id
列。
我遵循的解决方案是再次创建 table,并将 key_id
作为第一列。这样就返回了 key_id
来响应插入查询。可能有配置选项,但我找不到。
我知道再次创建一个 table 这不是一个好方法,但任何找到答案的人都请分享。
我正在使用 Apache DBUtils
Long rowId = queryRunner.insert(sql, new ScalarHandler<Long>(), params);
我的 table 架构是
CREATE TABLE abc
(
userid bigint,
api_key text,
key_id integer NOT NULL DEFAULT nextval('api_keys_key_id_seq'::regclass),
CONSTRAINT api_keys_pkey PRIMARY KEY (key_id),
CONSTRAINT userid_fkey FOREIGN KEY (userid)
REFERENCES public.users (userid) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
问题是 rowId
来自 userid
列,其中 table 的主键是 key_id
,我希望插入查询的返回 ID 来自 key_id
列。
我遵循的解决方案是再次创建 table,并将 key_id
作为第一列。这样就返回了 key_id
来响应插入查询。可能有配置选项,但我找不到。
我知道再次创建一个 table 这不是一个好方法,但任何找到答案的人都请分享。