草庐IT

unique_constraint

全部标签

java - com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException : Cannot add or update a child row: a foreign key constraint fails

当我想插入一些数据时,我经常遇到错误项目类@Entity@NamedQueries({@NamedQuery(name="Project.findAll",query="SELECTpFROMProjectp"),@NamedQuery(name="Project.findByTitle",query="SELECTpFROMProjectpWHEREp.title=:title")})publicclassProjectimplementsSerializable{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)privatei

具有条件的MySQL UNIQUE约束

我正在尝试为具有以下条件的两列(id_1和id_2)创建唯一索引约束:如果两个不同的行在id_2列中具有相同的值,则它们在id_1列中的值也必须相同。这可能吗?谢谢。 最佳答案 没有声明性约束来支持这种限制。您描述的场景不满足唯一约束的要求。(您可以创建约束,但您将无法添加id_1和id_2具有相同值的多行。如果您的意图是拒绝基于此限制的插入或更新,您可以使用行级触发器来完成此操作。 关于具有条件的MySQLUNIQUE约束,我们在StackOverflow上找到一个类似的问题:

php - MYSQL RANDOM SELECT UNIQUE ROWS - 排除先前选择的行

我有一个包含16K条目的表我要随机抽取44个条目但我不想重复相同的条目不止一次(永远)所以我有一个每用户列表,将已使用的“ID”作为逗号分隔的字符串保存在表中。我使用该列表来SELECT...NOTIN(used_IDs)问题是这个列表变得太大,我相信由于大小而sql调用失败知道如何更有效地做到这一点吗?Questionstable:+------+-------+-------+|id|Qtext|Tags|+------+-------+-------+Testtable:+------+-------+|id|QIDs|+------+-------+Resultstable:+

mysql - SQL 查询 : Retrieve rows that have an entry for every unique value of a column

背景:我在三个不同的时间对不同的元素进行了价格搜索。这些搜索及其相应的搜索时间、对象名称和价格保存在一个表中。我想比较一段时间内元素的价格,但我只想在所有三个搜索中提取有价格或可用的元素。换句话说,我想按产品查询所有时间段内的价格,但前提是该产品有所有时间段的价格(而且我不知道提前有多少个时间段——这必须确定从表动态)。我的计划是为此使用SQL(第一次尝试SQL...可能不适合此任务?)示例数据:+----------+----------+----------+----------+|Time|Item|Price|Dummy|+----------+----------+-----

mysql - 如何通过组合电子邮件和日期来获取 "unique"用户

我正在使用Laravel5.5。我有一个包含用户的数据库。问题是一些用户因为错误存在不止一次。我想查询我的数据库并选择所有“唯一”用户。通过使用“独特”这个词,我的意思是:如果电子邮件为"test@test.com"的用户存在50次,我想要created_at最接近的行>现在。我的返回所有用户的查询如下:DB::table('users')->select('name','surname','email','phone','answers','newsletter','created_at')->get();我很困惑,不确定是否应该使用limit将其与orderbycreated_at

sql - (MySQL : Select 20 latest entries in logfile from unique persons

我有一个日志文件,用于记录各种表的插入/删除/更新。我想了解一下最近20个人的概况,这些人记录了更新的位置,按上次更新日期时间DESC排序我现在拥有的是:SELECTDISTINCTlogfile.idvalue,DATE_FORMAT(logfile.logDateTime,'%d-%m-%Y%H:%i')ASthedatetime,CONCAT_WS('',people.peopleSurname,people.peopleLastname)ASpeopleNameFROMlogfile,peopleWHERE0=0ANDlogfile.tablename='people'ANDl

mysql - 外键的 `Constraint Symbol` 和 `index_name` 之间的区别

在AlterTable命令中添加外键的MySQL语法如下:ADD[CONSTRAINT[symbol]]FOREIGNKEY[index_name](index_col_name,...)CONSTRAINT符号和index_name有什么区别。据我所知,它们都是外键的命名方法,但我想应该还有更多的区别,谁能赐教? 最佳答案 [symbol]是一个约束名,如果指定,MySQL将创建名为[symbol]的外键和索引;在这种情况下,[index_name]将被忽略。第二个[index_name]是索引名。该索引是自动创建的。如果省略[s

mysql - 添加外键时 CONSTRAINT 关键字有什么用?

我不知道这两者之间有什么区别。CONSTRAINTfk_PerOrdersFOREIGNKEY(P_Id)REFERENCES..和FOREIGNKEY(P_Id)REFERENCES..只是命名,还是其他? 最佳答案 作为foreignkeysindicates上的MySQL手册,约束语法的CONSTRAINTsymbol_name部分是可选的:[CONSTRAINT[symbol]]FOREIGNKEY[index_name](index_col_name,...)REFERENCEStbl_name(index_col_nam

mysql - 在 MySQL 中创建 CONSTRAINT 时出现语法错误

第一个表创建没有问题:mysql>CREATETABLEnodes(->idvarchar(10)PRIMARYKEY,->usertext,->uidvarchar(10),->versiontinyint,->changesetsmallint,->timestamptimestamp->);当我尝试创建第二个表时,MySQL输出错误:mysql>CREATETABLEnode_tags(->idvarchar(10),->keytext,->valuetext,->typetext,->CONSTRAINTpk_node_tagPRIMARYKEY(id,key),->CONST

php - "Integrity constraint violation: 1062 Duplicate entry"- 但没有重复的行

我正在将一个应用程序从nativemysqli调用转换为PDO。尝试向具有外键约束的表中插入行时遇到错误。注意:这是一个简化的测试用例,不应复制/粘贴到生产环境中。信息PHP5.3、MySQL5.4首先,这是表格:CREATETABLE`z_one`(`customer_id`int(10)unsignedNOTNULLDEFAULT'0',`name_last`varchar(255)DEFAULTNULL,`name_first`varchar(255)DEFAULTNULL,`dateadded`datetimeDEFAULTNULL,PRIMARYKEY(`customer_i