gpt4 book ai didi

mysql - 是否可以使用MySQL在存储过程中动态创建表的名称?

转载 作者:行者123 更新时间:2023-11-29 13:11:38 25 4
gpt4 key购买 nike

看一下这段代码。它应该向您展示我正在尝试做什么:

SELECT type from barcodes where barcode = barcodeApp INTO @barcodeType;
IF (@barcodeType = 'videogame') THEN
SET @barcodeType = 'game';
END IF;

DELETE FROM @barcodeType + itemdetails_custom
WHERE barcode = barcodeApp
AND username = usernameApp;

正如您所看到的,在 DELETE FROM 部分,我想动态地将先前查询结果中的表名称放在一起。这可能吗?

此外,如果您发现上述查询存在问题,请告诉我。显然我绝不是 MySQL 专家。

最佳答案

您需要使用Prepared Statement来执行动态准备的查询。

尝试以下代码:

set @del_query = concat( 'DELETE FROM ', @finalType )
set @del_query = concat( '\'', itemdetails_custom, '\'' );
set @del_query = concat( @del_query, ' WHERE barcode = \'', barcodeApp, '\'' );
set @del_query = concat( @del_query, ' AND username = \'', usernameApp, '\'' );

prepare stmt from @del_query;
execute stmt;
drop prepare stmt; -- deallocate prepare stmt;

注意:我假设 barcodeAppusernameApp 是变量。否则,请在上面的查询中删除它们周围的单引号。

关于mysql - 是否可以使用MySQL在存储过程中动态创建表的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22021406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com