java - MySQL。当尝试删除一些重复行时,它会删除最后一行并且不会再删除任何行

标签 java mysql

我有表 ArtistConcertArtist_Concert,其中包含 Artist 之间的多对多连接code> 和 音乐会

问题是:添加了一场只有少数艺术家Concert后,当尝试从Artist_Concert中删除行时,它只删除了一行当尝试删除任何其他内容时,没有任何反应。

这就是我尝试在 Java 中删除行的方法:

stat = connect.createStatement();
        res = stat.executeQuery ("SELECT idConcert FROM concerthall.concert where ConcertName = '"+conc+"';");
        res.first();
        int idconc = res.getInt(1);
        stat.execute ("DELETE FROM concerthall.artist_concert WHERE idConc="+idconc+"");

艺术家

CREATE TABLE IF NOT EXISTS `concerthall`.`Artist` (
`idArtist` INT NOT NULL AUTO_INCREMENT,
`ArtName` VARCHAR(45) NOT NULL,
`ArtFee` INT NULL,
PRIMARY KEY (`idArtist`))
ENGINE = InnoDB

艺术家音乐会

CREATE TABLE IF NOT EXISTS `concerthall`.`Artist_Concert` (
`idCA` INT NOT NULL AUTO_INCREMENT,
`idArt` INT NOT NULL,
`IdConc` INT NOT NULL,
INDEX `idart_idx` (`idArt` ASC),
INDEX `idconc_idx` (`IdConc` ASC),
PRIMARY KEY (`idCA`),
CONSTRAINT `idart2`
FOREIGN KEY (`idArt`)
REFERENCES `concerthall`.`Artist` (`idArtist`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `idconct4`
FOREIGN KEY (`IdConc`)
REFERENCES `concerthall`.`Concert` (`idConcert`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB

演唱会

CREATE TABLE IF NOT EXISTS `concerthall`.`Concert` (
`idConcert` INT NOT NULL AUTO_INCREMENT,
`ConcertName` VARCHAR(45) NOT NULL,
`ConcertDateTime` DATETIME NOT NULL,
`Organizator` INT NOT NULL,
PRIMARY KEY (`idConcert`),
INDEX `concertorg_idx` (`Organizator` ASC),
CONSTRAINT `concertorg`
FOREIGN KEY (`Organizator`)
REFERENCES `concerthall`.`Organizator` (`idOrganizator`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB

最佳答案

删除重复项的最简单方法是:

ALTER IGNORE TABLE table ADD UNIQUE INDEX( a, b );

在 INDEX() 部分中,输入您只需要唯一条目的列的名称。我想你想要:

ALTER IGNORE TABLE concerthall.artist_concert ADD UNIQUE INDEX( idConc );

然后删除索引。

关于java - MySQL。当尝试删除一些重复行时,它会删除最后一行并且不会再删除任何行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34112523/

相关文章:

java - 仅使用框架布局分配大量内存

java - Checkstyle 'this' 关键字过度使用检测

php - Laravel Eloquent withCount() 应该比 with() 慢

php - 如何在 mysql 表中显示每个父级的子级

mysql - 在 SQL 数据库中存储名册的最佳方法

java - Eclipse 有没有办法让多个数组中的值保持对齐?

java - java中 "System.out.println()"的确切含义是什么

java - 使用 Neo4j 和 Mysql 构建社交网站

PHP 和 MySQL 找到 COUNT 和 ORDER BY 结果

来自模板化对象的 Java 8 功能构造函数