Par*_*key 19
现在实际存在于 Maria DB 10.219
ALTER TABLE test ADD COLUMN IF NOT EXISTS column_a VARCHAR(255);
Run Code Online (Sandbox Code Playgroud)
奖励,它也适用于修改
ALTER TABLE test MODIFY IF EXISTS column_a VARCHAR(255);
Run Code Online (Sandbox Code Playgroud)
小智 13
MySQLALTER TABLE
没有IF EXISTS
规范。
如果这是您需要定期执行的操作,您可以通过使用存储过程或编程语言来执行以下操作:
伪代码:
使用下面的 SQL 查找列是否存在:
column_name
从 中选择INFORMATION_SCHEMA
。COLUMNS
WHERE TABLE_SCHEMA
=[数据库名称] AND TABLE_NAME
=[表名称];
如果上述查询返回结果,则表示该列存在,否则您可以继续创建该列。
小智 8
您可以使用此解决方案,已在另一篇 StackOverFlow 帖子中提到:(参考:https : //stackoverflow.com/a/31989541/)
MySQL - ALTER TABLE 添加不存在的列:
SET @dbname = DATABASE();
SET @tablename = "tableName";
SET @columnname = "colName";
SET @preparedStatement = (SELECT IF(
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
WHERE
(table_name = @tablename)
AND (table_schema = @dbname)
AND (column_name = @columnname)
) > 0,
"SELECT 1",
CONCAT("ALTER TABLE ", @tablename, " ADD ", @columnname, " INT(11);")
));
PREPARE alterIfNotExists FROM @preparedStatement;
EXECUTE alterIfNotExists;
DEALLOCATE PREPARE alterIfNotExists;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
102483 次 |
最近记录: |