sql unique 和对插入设置约束

标签 sql database sqlite

我有一个数据库,我需要在其中避免插入重复项。要求是:

对于具有匹配列 1 的行的子集,不能有任何具有相同列 2 的行。

对于第 1 列匹配的行的子集,不能有任何具有相同列 3 和 4 的行。

我是 SQL 的新手,所以有没有一种方法可以在我创建数据库(创建表)时设置这些关系,或者我是否必须进行选择并在插入表之前手动进行这些检查?

最佳答案

实际上,您需要第 1 列和第 2 列是唯一的,并且第 1、3 和 4 列也是唯一的。所以当你创建表的时候,你可以使用两个 UNIQUE contains:

CREATE TABLE tbl (
  col1 varchar(255),
  col2 varchar(255),
  col3 varchar(255),
  col4 varchar(255),
  CONSTRAINT uc_first UNIQUE(col1, col2),
  CONSTRAINT uc_second UNIQUE(col1, col3, col4)
)

关于sql unique 和对插入设置约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1318202/

相关文章:

iphone - 在哪里保存为 iphone 应用程序创建的本地数据库?

sql - TOP 总是返回相同的行吗

mysql - 什么更快,子选择或不同(MySQL)?

xml - 将数据从数据库导出到 XML 文件

iphone - iOS:Sqlite 数据库错误:由于未捕获的异常 'NSInternalInconsistencyException' 而终止应用程序,原因: 'error preparing statement'

c++ - 如何使用 Qt Gui 应用程序编辑 sqlite 中的字段值?

php - SELECT COUNT(*) AS count - 如何使用这个计数

sql - 如何使用 SQL 为数据库表添加电话号码?

javascript - 当数据库返回值时如何更新我的html?

php - ajax 和 php 更新 mysql