欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL刪除數(shù)據(jù)1093錯(cuò)誤

 更新時(shí)間:2024年02月04日 11:32:52   作者:早起的年輕人  
在進(jìn)行更新和刪除操作的時(shí)候,條件語句里面有子查詢語句,此時(shí)會(huì)報(bào)1093錯(cuò)誤,本文就來介紹一下1093錯(cuò)誤的解決,感興趣的可以了解一下

現(xiàn)象:在進(jìn)行更新和刪除操作的時(shí)候,條件語句里面有子查詢語句,此時(shí)會(huì)報(bào)1093錯(cuò)誤!
錯(cuò)誤日志:1093 - You can’t specify target table ‘t_suer_study_video’ for update in FROM clause

首先根據(jù)條件來查詢

SELECT * FROM t_suer_study_video WHERE video_course_id =207;

如下圖所求,其中有一個(gè)用戶有兩條數(shù)據(jù),train_id 為 null 的那一條數(shù)據(jù)為重復(fù)數(shù)據(jù),我需要?jiǎng)h除的。

在這里插入圖片描述

線上環(huán)境中,像上頁面這樣的數(shù)據(jù),不小心產(chǎn)生了幾千條,是寫的程序的一個(gè)bug導(dǎo)致的問題,所以我需要批量刪除,先按用戶ID分組查詢一下:

SELECT user_id, COUNT(*) FROM t_suer_study_video WHERE video_course_id =207 GROUP BY user_id;  

如下圖,數(shù)量為2的用戶的數(shù)據(jù)就是需要處理的

在這里插入圖片描述

然后篩選分組的用戶數(shù)據(jù)

SELECT
	user_id,
	COUNT(*) 
FROM
	t_suer_study_video 
WHERE
	video_course_id = 207 
GROUP BY
	user_id 
HAVING
	COUNT(*) > 1;

我這測(cè)試數(shù)據(jù),只有一個(gè)用戶的是重復(fù)的,實(shí)際中是有多個(gè)用戶的

在這里插入圖片描述

然后刪除重復(fù)的,就是將上述分組查詢出來的重復(fù)用戶的ID作為條件來刪除

DELETE 
FROM
	t_suer_study_video 
WHERE
	video_course_id = 207 
	AND train_id IS NULL 
	AND user_id IN (
					SELECT
						user_id 
					FROM
						t_suer_study_video 
					WHERE
						video_course_id = 207 
					GROUP BY
						user_id 
					HAVING
					COUNT(*) > 1 
	);

出現(xiàn)錯(cuò)誤 1093 - You can’t specify target table ‘t_suer_study_video’ for update in FROM clause

在這里插入圖片描述

原因:在進(jìn)行更新和刪除操作的時(shí)候,條件語句里面有子查詢語句,此時(shí)會(huì)報(bào)1093錯(cuò)誤!,MySQL在進(jìn)行讀取數(shù)據(jù)的時(shí)候 會(huì)加讀鎖(共享鎖),其他請(qǐng)求可以再次加上讀鎖,但是不能加寫鎖,(如果在讀的過程中,又有其他線程進(jìn)行了更新操作,就會(huì)導(dǎo)致當(dāng)前線程讀取到的數(shù)據(jù)不是最新的數(shù)據(jù),這就是不可重復(fù)讀現(xiàn)象)。因此不支持對(duì)數(shù)據(jù)更新的同時(shí)進(jìn)行查詢操作,加了讀鎖 就不允許加寫鎖。

解決辦法:外面多嵌套一層查詢,原先的查詢作為子查詢。

DELETE 
FROM
	t_suer_study_video 
WHERE
	video_course_id = 207 
	AND train_id IS NULL 
	AND user_id IN (
				SELECT
					a.user_id 
				FROM
					(
							SELECT
								user_id 
							FROM
								t_suer_study_video 
							WHERE
								video_course_id = 207 
							GROUP BY
								user_id 
							HAVING
								COUNT(*) > 1 
					) a 
	);

刪除成功

在這里插入圖片描述

 到此這篇關(guān)于MySQL刪除數(shù)據(jù)1093錯(cuò)誤的文章就介紹到這了,更多相關(guān)MySQL 1093錯(cuò)誤內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用SQL查詢所有數(shù)據(jù)庫名和表名問題

    使用SQL查詢所有數(shù)據(jù)庫名和表名問題

    這篇文章主要介紹了使用SQL查詢所有數(shù)據(jù)庫名和表名問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 深入解析MySQL的窗口函數(shù)

    深入解析MySQL的窗口函數(shù)

    這篇文章主要介紹了深入解析MySQL的窗口函數(shù),窗口可以理解為記錄集合,窗口函數(shù)就是在滿足某種條件的記錄集合上執(zhí)行的特殊函數(shù),即:應(yīng)用在窗口內(nèi)的函數(shù),需要的朋友可以參考下
    2023-07-07
  • mysql 讀寫分離(實(shí)戰(zhàn)篇)

    mysql 讀寫分離(實(shí)戰(zhàn)篇)

    MySQL Proxy最強(qiáng)大的一項(xiàng)功能是實(shí)現(xiàn)“讀寫分離(Read/Write Splitting)”。
    2009-04-04
  • mysql 中如何取得漢字字段的各漢字首字母

    mysql 中如何取得漢字字段的各漢字首字母

    這篇文章主要介紹了mysql中如何取得漢字字段的各漢字首字母,需要的朋友可以參考下
    2014-08-08
  • MySQL使用Xtrabackup備份流程詳解

    MySQL使用Xtrabackup備份流程詳解

    這篇文章主要介紹了MySQL使用Xtrabackup備份流程詳解,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-03-03
  • 關(guān)于MySQL索引的深入解析

    關(guān)于MySQL索引的深入解析

    這篇文章主要給大家介紹了關(guān)于MySQL索引的深入解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 關(guān)于MySql數(shù)據(jù)庫Update批量更新不同值的實(shí)現(xiàn)方法

    關(guān)于MySql數(shù)據(jù)庫Update批量更新不同值的實(shí)現(xiàn)方法

    這篇文章主要介紹了關(guān)于MySql數(shù)據(jù)庫Update批量更新不同值的實(shí)現(xiàn)方法,數(shù)據(jù)庫管理系統(tǒng)可以通過SQL管理數(shù)據(jù)庫,定義和操作數(shù)據(jù),維護(hù)數(shù)據(jù)的完整性和安全性,需要的朋友可以參考下
    2023-05-05
  • SQL中如何將行轉(zhuǎn)成列詳解

    SQL中如何將行轉(zhuǎn)成列詳解

    行列轉(zhuǎn)換在做報(bào)表分析時(shí)還是經(jīng)常會(huì)遇到的,今天就說一下如何實(shí)現(xiàn)行列轉(zhuǎn)換吧,下面這篇文章主要給大家介紹了關(guān)于SQL中如何將行轉(zhuǎn)成列的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • MySQL數(shù)據(jù)庫優(yōu)化詳解

    MySQL數(shù)據(jù)庫優(yōu)化詳解

    這篇文章主要介紹了MySQL數(shù)據(jù)庫優(yōu)化的方方面面,各種小技巧,需要的朋友可以參考下
    2014-08-08
  • MySQL函數(shù)之字符串函數(shù)解讀

    MySQL函數(shù)之字符串函數(shù)解讀

    MySQL提供了多種字符串函數(shù),如CONCAT、CONCAT_WS、LENGTH、CHAR_LENGTH、LEFT、RIGHT、REPLACE、SUBSTRING、TRIM、FIND_IN_SET和FORMAT,用于處理數(shù)據(jù)庫中的字符串?dāng)?shù)據(jù)
    2024-12-12

最新評(píng)論