You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建具备双列主键且两列值均唯一的SQL表?

创建满足特定约束的SQL表

需求说明

  • 表包含A、B两列
  • 主键为组合键(A, B)
  • 列A的所有值唯一(即COUNT(A) = COUNT(DISTINCT A))
  • 列B的所有值同样唯一

正确的表创建语句

要同时满足组合主键、A列唯一、B列唯一的约束,需给A、B列分别添加唯一约束,同时显式声明组合主键:

CREATE TABLE IF NOT EXISTS myTable(
    A VARCHAR(32) NOT NULL UNIQUE,
    B VARCHAR(32) NOT NULL UNIQUE,
    PRIMARY KEY (A, B)
);

插入示例及结果

INSERT INTO myTable VALUES ('A1', 'B1'); -- 允许插入(A、B均未重复)
INSERT INTO myTable VALUES ('A1', 'B2'); -- 禁止插入(A列值'A1'已存在)
INSERT INTO myTable VALUES ('A2', 'B2'); -- 允许插入(A、B均未重复)
INSERT INTO myTable VALUES ('A3', 'B3'); -- 允许插入(A、B均未重复)
INSERT INTO myTable VALUES ('A4', 'B3'); -- 禁止插入(B列值'B3'已存在)
INSERT INTO myTable VALUES ('A4', 'B4'); -- 允许插入(A、B均未重复)
INSERT INTO myTable VALUES ('A5', 'B6'); -- 允许插入(A、B均未重复)

注:原示例中的创建语句存在错误(将A列单独设为主键,不符合组合主键要求),上述语句已修正,确保所有约束同时生效。

内容的提问来源于stack exchange,提问作者Ohumeronen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 02:10:39