我需要帮助解决我的表定义问题:我有一个表,例如,它将被定义为:
我希望禁止示例中的id 2和3,但我不知道如何操作。您有什么建议吗?
谢谢, naccyde
id
,主键friend0_id
,在users
表上的外键friend1_id
,在users
表上的外键
问题是,无论这对朋友(即friend0_id
和friend1_id
)的顺序如何,我都不想多次出现。
我尝试在这对朋友(即friend0_id
和friend1_id
)上定义一个UNIQUE
约束,但是在约束中定义的列的顺序(这里是先friend0_id
,然后friend1_id
)很重要。所以:
| id | friend0_id | friend1_id |
|----|------------|------------|
| 1 | 3 | 4 | -> OK
| 2 | 4 | 3 | -> OK, as the columns order in index matters
| 3 | 3 | 4 | -> Not OK, constraint prevent this
我希望禁止示例中的id 2和3,但我不知道如何操作。您有什么建议吗?
谢谢, naccyde
(最大(friend0_id, friend1_id), 最小(friend0_id, friend1_id))
上创建一个约束条件,但我不知道如何在SQLite中实现这个。SQLite有“max”和“min”函数可以替换“greatest”和“least”,但我认为它不允许对表达式进行索引。 - mu is too short