MySQL 多列唯一键

标签 mysql indexing

我熟悉的语法 在 'some_table' ('col1','col2') 上创建唯一索引 'blah' 但是我不确定这将如何表现。更具体地说,文档说

A column list of the form (col1,col2,...) creates a multiple-column index. Index values are formed by concatenating the values of the given columns.

在某些情况下这似乎没问题,但我想制作一个只包含唯一数字的表格。所以,我可以看到 col1 为 12,col2 为 2,据我所知,这将连接到 122,然后 col1 1 和 col2 22 的值将匹配它,这不是我想要的。有没有办法为串联定义一个分隔符,或者是否已经有一个分隔符?我应该采取不同的做法吗?

这是一个尝试图

table 1             middle               table 2
-------             ------               -------
t1_id               mid_id               t2_id
some_value          t1_id                another_value
                    t2_id

我希望 t1_id 和 t2_id 的组合是唯一的,但 t1 可以重复,t2 可以重复。

最佳答案

不可能也没有必要指定分隔符。索引按您希望的方式工作。

关于MySQL 多列唯一键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5069882/

相关文章:

php - 如何在 LIMIT 子句中应用 bindValue 方法?

java - 我的 java 程序的 SQL 语法错误

c# - 在 MySQL 数据库上首先使用 EF 代码进行格式错误的迁移

javascript - 按单击元素的索引从数组中弹出值

SQL:主键还是不主键?

r - 你会如何在 R 中完成这个棘手的子集化?

php - 无法让 mysql_insert_id() 工作

python - 连接mysql到Django-python

mysql - 如果 Alter 表中的单个索引是多列索引的一部分,则不会添加它

sql - 哈希联接出现在全文查询中 - SQL Server 2005