mysql - 如果字段尚不存在则更改表

标签 mysql sql

如果字段不存在则更改表

ALTER TABLE `table`
 ADD( `abc` text NOT NULL,
  `xyz` tinyint(1) NOT NULL,
  );

如果abcxyz字段已经存在,则无法更改表

如果可以的话?

最佳答案

您可以使用 SHOW COLUMNS事先并相应地构造您的查询,仅添加缺少的字段。

SHOW COLUMNS 的输出示例:

mysql> SHOW COLUMNS FROM City;
+------------+----------+------+-----+---------+----------------+
| Field      | Type     | Null | Key | Default | Extra          |
+------------+----------+------+-----+---------+----------------+
| Id         | int(11)  | NO   | PRI | NULL    | auto_increment |
| Name       | char(35) | NO   |     |         |                |
| Country    | char(3)  | NO   | UNI |         |                |
| District   | char(20) | YES  | MUL |         |                |
| Population | int(11)  | NO   |     | 0       |                |
+------------+----------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

关于mysql - 如果字段尚不存在则更改表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8668427/

相关文章:

sql - 使用 Entity Framework CTP 5 "code only"时,如何获取 LINQ 查询背后的原始 SQL?

php - 如何判断哪些ID被点击,显示相关信息? PHP/SQL

php - 如何使用 php 将多个输入文本字段值添加到数据库中

MySQL:如何显示所有可用类(class)以及在另一列中显示特定用户已注册的类(class)?

php - 如何在sphinx中使用子查询?

mysql - 为什么简单的 If ELSE 语句在 mySql 中不起作用

php - 帮助带括号的sql查询

mysql - 带条件的 SQL GROUP BY?

sql - 将所有查询合并为一个

mysql - 带有复合字段的查询中的 ORDER BY