相关疑难解决方法(0)

删除加入MySQL

这是创建表的脚本:

CREATE TABLE clients (
   client_i INT(11),
   PRIMARY KEY (client_id)
);
CREATE TABLE projects (
   project_id INT(11) UNSIGNED,
   client_id INT(11) UNSIGNED,
   PRIMARY KEY (project_id)
);
CREATE TABLE posts (
   post_id INT(11) UNSIGNED,
   project_id INT(11) UNSIGNED,
   PRIMARY KEY (post_id)
);
Run Code Online (Sandbox Code Playgroud)

在我的PHP代码中,删除客户端时,我想删除所有项目帖子:

DELETE 
FROM posts
INNER JOIN projects ON projects.project_id = posts.project_id
WHERE projects.client_id = :client_id;
Run Code Online (Sandbox Code Playgroud)

该职位表没有外键client_id,唯一的project_id.我想删除已通过的项目中的帖子client_id.

现在这不起作用,因为没有删除任何帖子.

mysql

477
推荐指数
8
解决办法
28万
查看次数

如何使用JPA和Hibernate删除带有JOIN的实体

我有以下实体:

在此输入图像描述

我想使用JPA删除用户的id和用户名的WordSet.

这是实体声明:

用户

@Entity
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
public class User extends AbstractModelClass {

    private String name;
    private String username;
    private String password;
    private String email;

    @ManyToMany(fetch = FetchType.EAGER)
    private Set<Role> roles;
}
Run Code Online (Sandbox Code Playgroud)

UserDictionary

@Entity
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
public class UserDictionary extends AbstractModelClass {

    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "userDictionary")
    private Set<WordSet> wordSets;

    @OneToOne(cascade = CascadeType.ALL)
    private User user;

    @PrePersist
    private void addDictionaryToWordSets() {
        wordSets.forEach(wordSet …
Run Code Online (Sandbox Code Playgroud)

java mysql sql hibernate jpa

10
推荐指数
1
解决办法
7941
查看次数

MySQL绕过错误1093

错误1093表示如果子查询查询要删除的表,则无法使用子查询更新或删除.

所以你做不到

delete from table1 where id in (select something from table1 where condition) ;
Run Code Online (Sandbox Code Playgroud)

好吧,解决这个限制的最佳方法是什么(假设您确实需要子查询来执行删除,并且不能完全消除自引用子查询?)

编辑:

以下是对有兴趣的人的查询:

mysql> desc adjacencies ;
+---------+---------+------+-----+---------+-------+
| Field   | Type    | Null | Key | Default | Extra |
+---------+---------+------+-----+---------+-------+
| parent  | int(11) | NO   | PRI | NULL    |       |
| child   | int(11) | NO   | PRI | NULL    |       |
| pathLen | int(11) | NO   |     | NULL    |       |
+---------+---------+------+-----+---------+-------+



-- The query is going to
-- …

mysql sql mysql-error-1093 sql-update sql-delete

4
推荐指数
1
解决办法
8999
查看次数

SQL Casing正则表达式查询

我的代码中出现了一个错误,它允许重复的条目出现在数据库表中,但具有不同的大小写.我正在使用MySQL.

例如,在这个例子中,第二行不应该被添加,但它是.

    ID    Name          Description
-------------------------------------
    1    HELLO WORLD    Saying hello
    2    Hello world    Saying hello
Run Code Online (Sandbox Code Playgroud)

为了补救不正确的数据,我想删除重复发生时全名大写的行.我可以在SQL中使用正则表达式,这是最好的解决方案,我该怎么做?

该表全文如下

'ADDRESSBOOK_GROUP','CREATE TABLE ADDRESSBOOK_GROUP( ID int(10)unsigned NOT NULL NAMEdefault''0 '', varchar(255)collat​​e utf8_unicode_ci NOT NULL, DESCRIPTIONtext collat​​e utf8_unicode_ci, ADDRESSBOOK_IDint(10)default NULL, TYPE int(10)unsigned NOT NULL default ''1',PRIMARY KEY(ID),KEY ADDRESSBOOK_ID(ADDRESSBOOK_ID))ENGINE = MyISAM DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC'

编辑 -我也忘了早些时候提到我只想在ADDRESSBOOK_ID为'6'时发生重复检查;

regex mysql

1
推荐指数
1
解决办法
96
查看次数

MySQL选择重构

在MySQL上,这不会运行:

delete from robottinosino where date = (select max(date) from robottinosino);
Run Code Online (Sandbox Code Playgroud)

错误信息:

ERROR 1093(HY000):您无法在FROM子句中为更新指定目标表'robottinosino'

题:

  • 为什么?(强调"为什么"所以Q不会被错误地标记为"重复")
  • 怎么解决?

mysql

0
推荐指数
1
解决办法
71
查看次数

标签 统计

mysql ×5

sql ×2

hibernate ×1

java ×1

jpa ×1

mysql-error-1093 ×1

regex ×1

sql-delete ×1

sql-update ×1