草庐IT

具有约束的主要 child 的 MySQL 集 ID

我有两个MySQL表,两者之间的主要关系是一对多。我还需要在parent_table中与child_table中的主要记录的ID建立一对一的关系。你可以把它想象成一个父亲有很多child,但有一个child是他最喜欢的;P。是否可以设置一个数据库约束,以便只有当child是parent的child时,parent才能拥有child的ID?parent_table(One)id:PrimaryKeyprimary_child_id:{IDfromchildtable}child_table(Many)id:PrimaryKeyparent_table:{IDfromparenttable

php - 将 Magento 类别复制到父级

场景:一个新的空白Magento,带有类别产品和客户导入,需要做一些修复。类别结构:RootL..Category_parent1(0products)L..Category_child1(22)L..Category_child2(34)L..Category_parent2(0)L..Category_child1(22)L..Category_child2(34)L..Category_parent3(0)L..Category_child1(22)L..Category_child2(0)L..Category_child2_child1(22)L..Category_chil

MySQL 删除层次结构中的所有 "child"元素

我有一个层次结构样式的MySQL数据库设置。有4个表,分别称为pages、regions、elements和content。页面在顶部,内容在底部。简化:页面有列:idregions有以下列:idpage_idelements包含以下列:idregion_idcontent包含以下列:idelement_id我希望能够仅使用页面的id删除页面的所有子页面。到目前为止,我已经能够使用嵌套的select语句通过页面的id选择底部内容,但这不会选择元素、区域或页面。SELECT*FROM`content`WHERE`element_id`IN(SELECT`id`FROM`elements`

mysql - 同表父子排序

我有一张这样的table-idnameorderingcatid1parent1102parent2203parent3304child11115child12216child21127child22228child31139child3223我正在尝试获得如下结果-idnameorderingcatid1parent1104child11115child12212parent2206child21127child22223parent3308child31139child3223我想订购第一个parent(catid=0)而不是它的child而不是第二个parent及其child。这

mysql - 通过第 n 个 child ID 获得最高的 parent ?

现在有一个问题,我们通常使用这种技术来维护父子关系,即我们将所有实体存储在一个具有parent_id列的表中,并且所有最上面的父级都有0在parent_id列中,这是一种很好的规范化技术,我同意,但也有一个缺点,它速度慢且效率低下。这主要是由递归引起的,比如对于每个父节点,我们必须一次又一次地运行查询来生成一棵树SELECTidFROM`table`WHEREparent_id=something我看过一些解决方案,有些人可能会尝试通过一次又一次地运行查询来使用任何编程语言来实现,这会给服务器带来负载,有些人提供了存储过程,但也涉及递归。所以我的问题是我们可以用一个数据库查询树(连接或

mysql - 如何从表sql中删除行

我想从8个表中删除特定行。我的问题是行与外键相连。如何删除连接到我要删除的特定行的所有数据?我的表包括定义表(如id、名称、最大值、最小值...),数据表(如id、user_id、definition_id、....)和历史表(保存数据表中的每个更改)。我想在级联命令上使用delete,但我找不到使用它的方法。 最佳答案 DELETECASCADE是外键约束的一个属性。不幸的是,您不能将它用作DELETE语句的选项(实际上这真的很酷)如果您的外键没有被声明为级联的,您需要“逐步提高”。很遗憾,您没有向我们展示您的真实表结构,所以让我

mysql - 使用mysql在一个查询中选择多个表中的 child 总数

我整个下午都在尝试处理一个(或两个或三个)查询,以便获得三个表的所有子表的计数。看看我的设计:用户表id_user|name1|foo2|bar获奖表id_won|user1|12|13|2绘制表格id_draw|user1|12|23|2丢tableid_lose|user1|12|13|1我想得到这样的东西:name|wons|draws|losesfoo|2|1|3bar|1|2|0这是我的尝试:selectu.name,w.total_w,d.total_d,l.total_lfromuseruLEFTJOIN(selectcount(user)astotal_w,userfr

MySQL:删除没有 child 的父记录

如何编写查询,从父表中删除不存在子表的记录?我有一个表resume和一个表personal_skill,它有一个resume_id字段来引用简历表。我需要删除简历表中没有具有此类resume_id的personal_skill记录的所有记录。我试着这样做:DELETEFROMresumeWHEREversion=0ANDNOTEXISTS(SELECTNULLFROMpersonal_skillxWHEREx.resume_id=id)但是这个查询失败了,因为我不能使用我在SELECT部分中删除的表。 最佳答案 您的尝试在这里显然有

mysql - 如何建模 "participation in container and child"

考虑这个ER图我们有被录取参加考试的学生,每个考试可以分成多个运行(例如,将大组分成多个房间或直接连续地为同一考试进行两个运行).是否有可能(通过数据库约束)确保学生只参加属于他们被录取的考试的运行?我自己找不到方法,也不知道如何用这个词来进行互联网搜索。 最佳答案 您有这些表和列:考试:身份证,姓名学生:身份证、姓名run:id,exam_id(exam.id的外键),when(timestamp),room您需要一个新的交叉表来跟踪哪个学生正在参加什么考试:int_exam_to_student:exam_id,student_

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