Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 多主键理解_Mysql_Sql - Fatal编程技术网

Mysql 多主键理解

Mysql 多主键理解,mysql,sql,Mysql,Sql,我有一个表,我想在其中添加2个主键,假设这些列是“a”和“B”,如果我这样做: select * from my_table where A="value" 我可以有多个结果 B列也一样 因此,当列A和列B同时存在时,我们只得到一个值(同样,在插入时,我们需要列A和B不为null) 所以我的问题是:如何在mySQL数据库中执行此操作。这是标准SQL。它不是MySQL特有的 CREATE TABLE MyTable ( A INT NOT NULL, B INT NOT NULL,

我有一个表,我想在其中添加2个主键,假设这些列是“a”和“B”,如果我这样做:

select * from my_table where A="value"
我可以有多个结果

B列也一样

因此,当列A和列B同时存在时,我们只得到一个值(同样,在插入时,我们需要列A和B不为null)


所以我的问题是:如何在mySQL数据库中执行此操作。

这是标准SQL。它不是MySQL特有的

CREATE TABLE MyTable (
  A INT NOT NULL,
  B INT NOT NULL,
  C INT,
  PRIMARY KEY (A, B)
);

这是标准的SQL。它不是MySQL特有的

CREATE TABLE MyTable (
  A INT NOT NULL,
  B INT NOT NULL,
  C INT,
  PRIMARY KEY (A, B)
);

提供一些示例数据和预期结果。您不需要。您只能有一个主键。这就是为什么它被称为主键。一个表不能有超过1个主键。但是,主键可以由多个列组成。(而且一个表可以有唯一的约束。)我相信你是在问关于复合键的问题。是的,我指的是一个主键,但它是一对列,可能吗?提供一些示例数据和预期结果。你没有。您只能有一个主键。这就是为什么它被称为主键。一个表不能有超过1个主键。但是,主键可以由多个列组成。(而且一个表可以有唯一的约束。)我相信你是在问关于复合键的问题。是的,我指的是一个主键,但它是一对列,可能吗?