gpt4 book ai didi

mysql - 仅当列不存在时才使用 SQL 将列添加到 MySQL(不是 MariaDB)表

转载 作者:行者123 更新时间:2023-11-30 22:19:28 28 4
gpt4 key购买 nike

我已阅读 this question和解决方案,但它们或多或少不适用于我的情况。我只有 SQL 选项,应该避免 PROCEDURE,我们可能没有所需的权限。

这是一个创建缺失表、列和索引等的 SQL 脚本(模式更新)

我看到在 MariaDB 中我们可以使用 IF NOT EXISTS 子句,但这在 MySQL 中不可用。 MySQL 中是否有任何类似的方法或解决方法?

最佳答案

在 SET 语句中使用 IF() 得出适合我的逻辑:

SET @s = (SELECT IF(
(SELECT COUNT(1)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'your_table'
AND table_schema = 'your_schema'
AND column_name = 'column_name'
) > 0,
"SELECT 1",
"ALTER TABLE your_table ADD column_name VARCHAR(100)"
));

PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

关于mysql - 仅当列不存在时才使用 SQL 将列添加到 MySQL(不是 MariaDB)表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37085027/

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