gpt4 book ai didi

mysql - 在多个表中截断

转载 作者:行者123 更新时间:2023-11-29 17:57:50 26 4
gpt4 key购买 nike

我正在尝试创建一种方法来同时在多个表中应用截断。

我尝试了以下代码:

SELECT CONCAT('TRUNCATE TABLE ',table_schema,'.',TABLE_NAME, ';')
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema in ('mytable1','mytable2','mytable3');

更不成功的是,它没有截断表。

有谁知道有什么方法可以做到这一点吗?

最佳答案

DECLARE @CODE NVARCHAR(MAX) = '', @XML XML

SET @XML = STUFF((
SELECT ' ' + data.CODE_DELETE
FROM (
SELECT CONCAT ('TRUNCATE TABLE ', table_schema, '.', TABLE_NAME, '') AS CODE_DELETE
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME IN ('CITY', 'WORKERS')
) [data]
FOR XML PATH('')
), 1, 1, '')
SET @CODE = CAST(@XML AS VARCHAR(MAX))

SELECT @CODE

EXECUTE sp_executesql @CODE;

变量@XML为了能够将行转换为单个值,那么我们必须将sql代码转换为varchar为了执行它 EXECUTE sp_executesql @CODE;

如果这样做,您可以看到将执行的代码:

SELECT @CODE

city​​和workers是我数据库中的表,如果你看我会更改 table_schema通过TABLE_NAMEWHERE条款。

关于mysql - 在多个表中截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48654801/

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