Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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
SQL:没有两个实体可以具有相同的两个属性组合?_Sql_Relational Database - Fatal编程技术网

SQL:没有两个实体可以具有相同的两个属性组合?

SQL:没有两个实体可以具有相同的两个属性组合?,sql,relational-database,Sql,Relational Database,例如,如果我有一个带有属性date和driver的表“Delivery”。我希望在同一天不会有两次交付有相同的司机。如何在CREATETABLE语句中执行此操作?要执行此操作,您需要在这两列上声明主键或唯一索引。更常见的情况是声明主键,在这种情况下,唯一列被视为提供由行建模的项的标识 有些人喜欢创建一个单独的、自动编号的整数字段作为主键,并在要强制其唯一性的两列上声明一个唯一索引。这称为使用“代理”或“非智能”键。第一种解决方案称为使用“自然”键 根据您使用的数据库产品,创建这些约束的语法有一些

例如,如果我有一个带有属性date和driver的表“Delivery”。我希望在同一天不会有两次交付有相同的司机。如何在CREATETABLE语句中执行此操作?

要执行此操作,您需要在这两列上声明主键或唯一索引。更常见的情况是声明主键,在这种情况下,唯一列被视为提供由行建模的项的标识

有些人喜欢创建一个单独的、自动编号的整数字段作为主键,并在要强制其唯一性的两列上声明一个唯一索引。这称为使用“代理”或“非智能”键。第一种解决方案称为使用“自然”键

根据您使用的数据库产品,创建这些约束的语法有一些细微的变化,但它们通常类似于:

 ALTER TABLE table_name ADD PRIMARY KEY key_name (column_name1, column_name2)

这将取决于您使用的RDBMS。请适当标记问题。在这两列上创建唯一约束或唯一索引。