mysql - 是否可以为特定列值设置 mysql 唯一索引?

标签 mysql sql

抱歉这个奇怪的标题,不能写得更好...

enter image description here

看看上面的图片。

在 mysql 中,基于 user_id 的列 UNIQUE 是否可能/可行?

让我重新表述一下,是否可以让订单列的值只对特定的 user_id 唯一?

因此,如果 user_id = 1 order = 1 并且不能有另一个 order = 1。但是如果 user_id = 2 我可以再次使用 order = 1 吗?

还是在与 mysql 接口(interface)的 php 脚本中控制它更好/更快?

最佳答案

您在问几个独立的问题。

(1) 是的,您可以仅为一个客户拥有唯一的订单。在这种情况下,您需要使用两列创建唯一索引。

(2) 在与 mysql 接口(interface)的 php 脚本中控制它是否更好/更快?第一个问题与数据完整性而非性能有关。如果它是自动递增列,生成新的 word_id 会更快,因为如果不是,您的 PHP 代码需要查询数据库以找到最大值并加一。

如果您希望每个客户都有唯一的 word_id,则需要在您的 PHP 代码中生成它们。 MySQL 无法根据另一列生成新的自增值(因为您使用的是 InnoDB)

关于mysql - 是否可以为特定列值设置 mysql 唯一索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19335910/

相关文章:

mysql - 将 MySQL 数据库从 utf8_general_ci 更改为 utf8_bin - 好主意?

mysql - 如何在 MYSQL 和 Mule 中处理 size=0 响应

sql - 何时使用查询或代码

sql - 将一列的多个结果行拼接成一个,按另一列分组

PHP 查询不适用于 HTML href 链接

mysql - Left Join 返回比表 1 中更多的记录并添加额外的数据

mysql - 记录某些表中的删除行|备份已删除的数据

php - MySQL:用于具有多个类别的产品的 SQL 和 DB

sql - 无法在 jsonb 对象字段中搜索文本

sql - LIKE 条件中的多个字符串 - Presto SQL