首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL将字段添加到枚举

MySQL将字段添加到枚举
EN

Stack Overflow用户
提问于 2009-10-31 03:26:52
回答 1查看 1.2K关注 0票数 2

我必须向数据库表中添加一些枚举选项。问题是,我将不得不对几个表和数据库执行此操作,并且它们可能不都具有相同的枚举数据类型。为什么要编写alter table查询或类似于将选项追加到枚举数据类型的内容?

如果完全用MySQL无法做到这一点,那么如何使用PHP脚本来解决这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-10-31 04:04:54

没有简单的方法来追加枚举值。

这是丑陋和未经测试的,但我认为它会给你一个想法:

代码语言:javascript
复制
<?php

$sql = "select table_schema
             , table_name
             , column_name
             , column_type
             , is_nullable
             , column_default
          from information_schema
         where data_type = 'enum'";

$res = mysql_query($sql);

while ($row = mysql_fetch_assoc($res)) {

  // these are important -->       leading comma --v      close paren --v
  $new_enum = substr($row['column_type', 0, -1) . ",'new','enums','here')"

  $sql = "alter table `{$row['table_schema']}`.`{$row['table_name']}`";
  $sql .= " modify column `{$row['column_name']}`";
  $sql .= " $new_enum";
  $sql .= ($row['is_nullable'] == 'YES') ? " NULL" : " NOT NULL";
  $sql .= " default $row['column_default']";

  mysql_query($sql);
}

您可能可以使用存储过程“纯在mysql中”实现这一点,但这超出了我现在的理解范围。:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1651839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档