一尘不染

MySQL:如果不存在,如何创建列?

mysql

只有当它不存在时,我才尝试为我的表创建一个列。我已经研究了很多,但我还没有找到任何解决方案。

这真的可以有条件地创建 Column 吗?


阅读 93

收藏
2022-10-11

共2个答案

一尘不染

MySQLALTER TABLE没有IF EXISTS规范。

如果您需要定期执行以下操作,则可以通过使用存储过程或编程语言来执行以下操作:

伪代码:

  • 使用下面的 SQL 查找列是否存在:

column_name 从中选择INFORMATION_SCHEMACOLUMNS WHERE TABLE_SCHEMA=[数据库名称] AND TABLE_NAME=[表名称];

  • 如果上述查询返回结果,则表示该列存在,否则您可以继续创建该列。
2022-10-11
一尘不染

Maria DB 10.219 现在实际上存在

ALTER TABLE test ADD COLUMN IF NOT EXISTS column_a VARCHAR(255);

Bonus, it works for MODIFY as well

ALTER TABLE test MODIFY IF EXISTS column_a VARCHAR(255);
2022-10-11