- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
id | sender | receiver
-------------------------------
1 | 1 | 12 <- case 1
2 | 12 | 1 <- case 2
3 | 1 | 2
4 | 3 | 1
我有一个包含以上内容的表格,sender
和 receiver
都是复合键,这意味着我不能在同一个位置两次使用它们,但是我怎样才能使确保发送方或接收方没有像上面案例 1 和 2 中标记的那样重复互换。
最佳答案
您可以将计算列与唯一索引一起使用:
create table mytable
(
id int not null auto_increment,
sender int not null,
receiver int not null,
key1 int as (least(sender,receiver)),
key2 int as (greatest(sender,receiver)),
primary key (id)
);
create unique index idx_mytable_unique on mytable(key1, key2);
然后
insert into mytable(sender, receiver) values (1,12);
-> 1 row inserted.
然后
insert into mytable(sender, receiver) values (12,1);
-> Duplicate entry '1-12' for key 'idx_mytable_unique'
演示:https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=a21e48498ff6c10007451109f8e07166
关于mysql - 即使在 MYSQL 表中互换时,如何使两行唯一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55295968/
假设我有两个名为Student和Employee的结构(或类),并且Student和Employee具有完全相同的成员。 我的问题是,为什么我不能执行以下操作: Student s; Employee
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: Hashset vs Treeset 你可以使用 HashSet和TreeSet可以互换吗?如果我交换TreeSet
页面上有一个值为“button1”的按钮。当按下时,它必须删除自身并添加值为“button2”的新按钮。当按下“button2”时,它必须删除自身并添加“button1”回来。有点无限循环。 我知道只
以下模板 template int compute(Data d, Number n) { if(n > 10) SLOW(d) if(n (data)模板。除了代码重复,comput
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
我是一名优秀的程序员,十分优秀!