簡體   English   中英

當我添加內部連接和 where 子句時,我得到一個 sql 語法錯誤 1064 用於下面的存儲過程

[英]Im getting an sql syntax error 1064 for the stored procedure below when I added the inner join and where clause

我在第 2 行的 u.id = ub.user_id WHERE u.active =0 AND IFNULL ' 上的 Inner join users u 附近收到此語法錯誤 1064。還有什么是調試存儲過程的最佳方法?

Expected Output : delete data for not active users 
DELIMITER $$ 

CREATE PROCEDURE `logdb_user_breaks_delete`(

IN log_database VARCHAR(255) CHARACTER SET utf8mb4, 

IN retention_logdb INT(11) )

BEGIN SET @v = concat('DELETE FROM `',log_database ,'`.`user_breaks` ub
INNER JOIN users u on u.id = ub.user_id

WHERE u.active = 0 AND

IFNULL(ub.updated_at, ub.inserted_at) < (CONCAT(YEAR(NOW()), "-", MONTH(NOW()), "-

", "01") - INTERVAL ',retention_logdb,' MONTH);');

PREPARE stm FROM @v;

EXECUTE stm; 

DEALLOCATE PREPARE stm;

END$$ DELIMITER ;

當您連接表時,您必須指出您要刪除哪些表。 我猜你想刪除 user_breaks 行,而不是 users 行。 DELETE FROM更改為DELETE ub FROM

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM