Joh*_*ica 3 postgresql foreign-keys sequence
我有以下表格定义 journal
CREATE TABLE "public"."journal" (
"id" "public"."inc_journal" NOT NULL,
"short_desc" varchar(20),
"description" varchar(1000),
"default_gl_account_id" int8,
"company_id" int2,
"creator_user_id" int4,
"created_date" timestamp(6),
"type" "public"."journal_type",
CONSTRAINT "journal_pkey" PRIMARY KEY ("id")
)
WITH (OIDS=FALSE)
;
Run Code Online (Sandbox Code Playgroud)
inc_journal 的 def 是一个像这样的序列:
CREATE SEQUENCE "public"."inc_journal"
INCREMENT 1
MINVALUE 1
MAXVALUE 4294967295
START 1
CACHE 1;
Run Code Online (Sandbox Code Playgroud)
我希望为它设置一个外键,如下所示:
ALTER TABLE "public"."entry"
ADD FOREIGN KEY ("journal_id") REFERENCES "public"."journal" ("id");
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,我收到一个错误:
[Err] 错误:无法实现外键约束“entry_journal_id_fkey”
详细信息:键列“journal_id”和“id”的类型不兼容:整数和 inc_journal。
我如何摆脱这个错误?
我需要设置journal_id为 typeinc_journal吗?我仍然想插入null到该字段中,所以这似乎不是正确的选择。
尝试serial为您的 PKey使用字段类型,或
id integer NOT NULL DEFAULT nextval('inc_journal')
Run Code Online (Sandbox Code Playgroud)
这将为您的 PKey 创建/使用一个序列。然后你可以 FKey 任何你想要的整数字段。另请参阅http://www.postgresql.org/docs/current/static/datatype-numeric.html#DATATYPE-SERIAL。
| 归档时间: |
|
| 查看次数: |
4822 次 |
| 最近记录: |