我使用以下脚本在H2数据库中创建了具有复合外键约束的表:
CREATE TABLE t1 (
a INT,
b INT,
CONSTRAINT pk_t1 PRIMARY KEY (a,b)
);
CREATE TABLE t2 (
a INT,
b INT,
CONSTRAINT fk_t2 FOREIGN KEY (a, b) REFERENCES t1 (a, b)
);
然后,我使用Intellij IDEA连接到数据库并显示表T2的DDL。我得到以下输出,看起来好像只为B列创建了外键。
CREATE TABLE T2
(
A INTEGER,
B INTEGER,
CONSTRAINT FK_T2 FOREIGN KEY (B) REFERENCES T1 (B)
);
CREATE INDEX FK_T2_INDEX_A
ON T2 (A, B)
这是IDEA中的错误吗?是否可以使IDEA显示正确的组合外键约束?还是输出超出了表示复合键的常规语法?
我原本希望这样:
CONSTRAINT fk_t2 FOREIGN KEY (a, b) REFERENCES t1 (a, b)