我已阅读this question及解决方案,但它们或多或少不适用于我的情况。我只有SQL选项,应该避免使用PROCEDURE
,我们可能没有所需的权限。
这是一个创建缺少的表,列和索引等的SQL脚本(架构更新)
我在MariaDB中看到我们可以使用IF NOT EXISTS
子句,但这在MySQL中不可用。 MySQL中是否有类似的方法或解决方法?
答案 0 :(得分:0)
在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;