Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQLite3中,当另一个字段的值相同时,是否有方法不允许重复字段?_Sqlite_Unique Constraint - Fatal编程技术网

在SQLite3中,当另一个字段的值相同时,是否有方法不允许重复字段?

在SQLite3中,当另一个字段的值相同时,是否有方法不允许重复字段?,sqlite,unique-constraint,Sqlite,Unique Constraint,这很难解释,这可能就是我找不到答案的原因。例如,我有一张“配方”、“配料”表。很明显,配料将被重复用于不同的配方,因此我不能使用UNIQUE,但我希望该命令能够拒绝任何试图插入特定配方数据库的尝试,因为该配方中已经存在该配料 例如,一条记录:配料=“苹果”,配方=“苹果皮”;不允许在recipe=“applePie”字段中插入另一个“apple”(在我的实际应用程序中,可能存在除此之外的其他字段,它们在两条记录上可能不同,但它们都具有相同的成分和配方,因此应拒绝第二次尝试插入值,除非成分不存在)

这很难解释,这可能就是我找不到答案的原因。例如,我有一张“配方”、“配料”表。很明显,配料将被重复用于不同的配方,因此我不能使用UNIQUE,但我希望该命令能够拒绝任何试图插入特定配方数据库的尝试,因为该配方中已经存在该配料

例如,一条记录:配料=“苹果”,配方=“苹果皮”;不允许在recipe=“applePie”字段中插入另一个“apple”(在我的实际应用程序中,可能存在除此之外的其他字段,它们在两条记录上可能不同,但它们都具有相同的成分和配方,因此应拒绝第二次尝试插入值,除非成分不存在)

很抱歉,如果这是非常基本的,我想一定有一种方法可以以本机方式处理它,而不需要我的程序在代码中进行选择和比较。我不知道我解释得有多清楚,如果你需要澄清,请告诉我


谢谢大家!

在表的
CREATE
语句中,为
成分
配方
列的组合定义一个
唯一
约束:

CREATE TABLE tablename (
  recipe TEXT,
  ingredient TEXT,
  UNIQUE(recipe, ingredient)
)

现在,如果您尝试插入与现有行具有相同的
配方和
成分的行,您将得到一个错误,并且新行将不会被插入。

“这很难解释”--那么无论如何,在这里的每个问题中都需要a,这肯定会有很大帮助。对不起,尽管如此,还是有人设法回答了!