【发布时间】:2017-10-27 00:10:45
【问题描述】:
您好,我有一个 Mysql 表,我在其中保存客户端
在一栏中我保存了 IP 地址,
在我设置的其他列中客户端是否处于活动状态 我还保存了姓名、邮件等...
如果有一个客户离开,我们只需将 Active 列设置为 0,(以保留付款历史等),当新客户到达时,我们可以重新分配相同的 IP
有没有办法创建一个 UNIQUE 约束以只允许一个处于活动状态的 IP?
例子
IP | ACTIVE | DATE
---------------------------------
102 | 1 | 2017-10-12
103 | 1 | 2017-10-12
103 | 0 | 2017-10-13
103 | 0 | 2017-10-09
所以它可以是多行,IP和0,但只有一个IP和1
我正在考虑在 INSERT、UPDATE 之前执行 SELECT 并验证是否没有其他行具有该 IP 和 ACTIVE 中的 1
建议?
【问题讨论】:
-
IP 地址不是唯一的
-
@MichelFeldheim 如果 OP 想要强制每个 IP 地址只允许一个活动用户,那么它将是唯一的。但是,我同意在现实世界中,这种情况不太可能发生。
标签: mysql triggers constraints unique