![]() |
1
7
我 认为 您的意思是:您需要避免此表中的重复行。 有很多方法可以解决这个问题。最简单的方法之一:
正如@henrik opel指出的那样,您可以在组合的列上使用check约束,但是您必须在其他地方使用try/catch块,这增加了不相关的复杂性。 编辑 解释这个评论… 我假设这是一个映射电影和标签之间多对多关系的表。我知道您可能在使用PHP,但我希望下面的C伪代码足够清晰。
如果我有
在这个过程的早期,没有切实可行的方法来检查重复,因为另一个用户可能随时标记电影,所以没有办法解决这个问题。 注: 如果试图插入重复记录意味着存在错误,那么抛出一个错误是合适的,但如果不是,您不希望在错误处理程序中有额外的复杂性。 |
![]() |
2
0
尝试使用数据库触发器,以便根据表的更新向其他表添加行。 |
![]() |
3
0
我假设您的意思是,如果行不包含这些值,您希望插入一行。 我前面没有MySQL,但一般来说,SQL应该可以工作:
如果只在根本不存在这样的行的情况下插入行,则可以这样做:
|
![]() |
4
0
如果您使用的是innodb和transactions,那么您可以先简单地查询数据,然后在代码中执行insert if now行已经找到了值。或者,在两列上添加一个唯一的constaint,然后尝试插入。如果会失败,如果它已经存在,您可以忽略它。(这比我的第一种方法更不可取。) |
![]() |
5
0
是车费吗 Henrik Ope 当他发现我们都忽略的东西时,包括我在内,这两个列上有一个简单的独特约束。最终是最好的解决方案。 |
![]() |
6
0
|
![]() |
Community wiki · SQL语法新手 1 年前 |
![]() |
KateMak · 是否将多行中的多列与唯一id组合? 1 年前 |
![]() |
Karuna · SQL中列内的筛选器[重复] 1 年前 |
![]() |
Irvan Affandy · 为另一个选择选择声明的键 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |