标签: sql-delete

如何删除具有不同ID的多个行?

我想做这样的事情:

DELETE FROM table WHERE id IN (SELECT ....)
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

sql sql-delete

38
推荐指数
1
解决办法
9万
查看次数

如何在MySQL中删除2列作为复合主键的多行?

我的innodb表具有以下结构:4列(CountryID, Year, %Change, Source),以2列(CountryID, Year)为主键.除了使用for-loop删除每一行之外,如何删除多行?

我正在寻找类似的东西

DELETE FROM CPI 
 WHERE CountryID AND Year IN (('AD', 2010), ('AF', 2009), ('AG', 1992))
Run Code Online (Sandbox Code Playgroud)

mysql multiple-records composite-primary-key sql-delete

36
推荐指数
1
解决办法
2万
查看次数

休眠并删除所有

在Hibernate中删除表中所有行的最佳方法是什么?

如果我迭代一个集合并称session.delete()它不符合我的知识.

如果我使用其他选项session.createQuery("delete ..."),则不会影响持久性上下文.

如果没有更好的变体,我应该使用这些方法吗?

java hibernate sql-delete

33
推荐指数
3
解决办法
5万
查看次数

从一个带有连接的表中删除

我正在尝试根据另一个数据库的选择标准从一个数据库中删除记录.我们有两个表,emailNotification,用于存储作业和电子邮件列表.然后我们有工作.我想清除已关闭的作业的电子邮件通知.我在Stackoverflow上发现了一些早期的例子,它们引导我使用这种语法(我之前尝试在where之前进行连接).

DELETE FROM emailNotification
WHERE notificationId IN (
 SELECT notificationId FROM emailNotification e
 LEFT JOIN jobs j ON j.jobId = e.jobId
WHERE j.active = 1
)
Run Code Online (Sandbox Code Playgroud)

我收到错误,您无法在FROM子句中指定目标表'emailNotication'以进行更新.

mysql left-join sql-delete

33
推荐指数
2
解决办法
5万
查看次数

删除除一条重复记录以外的所

我有一个表,应该保留给定配置文件的访问者的痕迹(用户ID到用户ID对).事实证明我的SQL查询有点过时,并且正在生成多个对而不是单个对.事后我应该对每个id + id对强制执行一个唯一约束.

现在,我怎么去打扫桌子呢?我想要做的是删除所有重复的对,只留一个.

所以例如改变这个:

23515 -> 52525 date_visited
23515 -> 52525 date_visited
23515 -> 52525 date_visited
12345 -> 54321 date_visited
12345 -> 54321 date_visited
12345 -> 54321 date_visited
12345 -> 54321 date_visited
23515 -> 52525 date_visited
...
Run Code Online (Sandbox Code Playgroud)

进入:

23515 -> 52525 date_visited
12345 -> 54321 date_visited
Run Code Online (Sandbox Code Playgroud)

更新:这是所请求的表结构:

id  int(10)         UNSIGNED    Non     Aucun   AUTO_INCREMENT
profile_id  int(10)         UNSIGNED    Non     0 
visitor_id  int(10)         UNSIGNED    Non     0
date_visited    timestamp           Non     CURRENT_TIMESTAMP   
Run Code Online (Sandbox Code Playgroud)

sql sql-delete

31
推荐指数
3
解决办法
3万
查看次数

如何获取PostgreSQL中删除的行数?

我正在寻找一种方法来返回PostgreSQL中受DELETE子句影响的行数.该文件指出,

成功完成后,DELETE命令将返回表单的命令标记

删除计数

计数是删除的行数.如果count为0,则没有符合条件的行(这不被视为错误).

如果DELETE命令包含RETURNING子句,则结果将类似于SELECT语句的结果,该SELECT语句包含RETURNING列表中定义的列和值,这些列和值是通过命令删除的行计算的.

但我很难找到一个很好的例子.任何人都可以帮我这个,我怎么能找出删除了多少行?


编辑: 我接受了Milen的解决方案,但我想提出一个我后来发现的替代方案.它可以在这里找到,在38.5.5解释.获取结果状态标题.

postgresql rowcount delete-row sql-delete

29
推荐指数
5
解决办法
2万
查看次数

如何在500,000+行表中不使用截断表时有效删除行

假设我们有30个列和500,000行的表Sales.我想删除表中的400,000(那些"toDelete='1'").

但我有一些限制:

  • 该表是"经常"读/写的,我不想长时间"删除"需要很长时间并将表锁定太长时间
  • 我需要跳过事务日志(比如a TRUNCATE)但是在做一个"DELETE ... WHERE..."(我需要设置条件)时,却没有找到任何方法来做这个...

任何建议都欢迎改变一个

DELETE FROM Sales WHERE toDelete='1'
Run Code Online (Sandbox Code Playgroud)

更多分区和可能的事务日志免费.

sql t-sql truncate sql-server-2008 sql-delete

27
推荐指数
4
解决办法
4万
查看次数

24
推荐指数
4
解决办法
2169
查看次数

如何在使用JOIN时在MS Access中删除?

我试图DELETE在MS Access中使用该子句,并在使用该JOIN子句时遇到问题.我注意到这可以通过使用DISTINCTROW关键字来完成.

例如,以下SQL语句不允许删除:

DELETE Table1.*
FROM Table1 INNER JOIN Table2 ON Table1.Name=Table2.Name;
Run Code Online (Sandbox Code Playgroud)

但是,这句话的确如下:

DELETE DISTINCTROW Table1.*
FROM Table1 INNER JOIN Table2 ON Table1.Name=Table2.Name;
Run Code Online (Sandbox Code Playgroud)
  • DELETE使用DISTINCTROW关键词时为什么要工作?
  • 更具体地说,JET引擎中发生了什么需要这个?

sql ms-access delete-row sql-delete

24
推荐指数
1
解决办法
7万
查看次数

事务中的TSQL Try/Catch,反之亦然?

我正在编写一个脚本,它将从多个表中删除记录,但在删除之前,它必须返回一个计数,供用户在提交之前进行确认.

这是脚本的摘要.

BEGIN TRANSACTION SCHEDULEDELETE
    BEGIN TRY
        DELETE   -- delete commands full SQL cut out
        DELETE   -- delete commands full SQL cut out
        DELETE   -- delete commands full SQL cut out
        PRINT 'X rows deleted. Please commit or rollback.' --calculation cut out.
    END TRY
    BEGIN CATCH 
        SELECT
            ERROR_NUMBER() AS ErrorNumber,
            ERROR_SEVERITY() AS ErrorSeverity,
            ERROR_STATE() AS ErrorState,
            ERROR_PROCEDURE() AS ErrorProcedure,
            ERROR_LINE() AS ErrorLine,
            ERROR_MESSAGE() AS ErrorMessage

            ROLLBACK TRANSACTION SCHEDULEDELETE
            PRINT 'Error detected, all changes reversed.'
    END CATCH

--COMMIT TRANSACTION SCHEDULEDELETE --Run …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server transactions sql-delete

24
推荐指数
2
解决办法
5万
查看次数