表格定义:
CREATE TABLE IF NOT EXISTS public.test
(
"Id" integer NOT NULL GENERATED ALWAYS AS IDENTITY (INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1),
"SomeColumn" character(100) COLLATE pg_catalog."default",
CONSTRAINT test_pkey PRIMARY KEY ("Id")
)
TABLESPACE pg_default;
ALTER TABLE IF EXISTS public.test
OWNER to postgres;
我正在尝试这个查询:
INSERT INTO public.test VALUES ('testData');
但是PostgreSQL会抛出这个错误:
错误:类型integer的输入语法无效:“测试数据”
第1行:插入公共。测试值(“testData”);
我知道这在SQL Server中是有效的。有没有办法在PostgreSQL中实现这种行为?
我不想指定列名。列是按顺序定义的,但查询中不存在标识列。
1条答案
按热度按时间deyfvvtc1#
我不想给予列名
这是个坏主意。你应该总是为INSERT语句指定目标列。特别是当你想跳过一些列,而不是其他列的时候。
但是,如果您坚持使用糟糕的编码风格,可以使用
DEFAULT
关键字