当前位置: 首页 > 面试题库 >

如何在MySQL的ENUM类型列中添加更多成员?

钱言
2023-03-14
问题内容

MySQL参考手册未提供有关如何执行此操作的明确示例。

我有一个ENUM类型的国家/地区名称列,需要在其中添加更多国家/地区。实现此目的的正确MySQL语法是什么?

这是我的尝试:

ALTER TABLE carmake CHANGE country country ENUM('Sweden','Malaysia');

我得到的错误是: ERROR 1265 (01000): Data truncated for column 'country' at row 1.

country列是上述陈述中的ENUM类型的列。

显示创建表 输出:

mysql> SHOW CREATE TABLE carmake;
+---------+---------------------------------------------------------------------+
| Table   | Create Table
+---------+---------------------------------------------------------------------+
| carmake | CREATE TABLE `carmake` (
`carmake_id` tinyint(4) NOT NULL AUTO_INCREMENT,
`name` tinytext,
`country` enum('Japan','USA','England','Australia','Germany','France','Italy','Spain','Czech Republic','China','South Korea','India') DEFAULT NULL,
PRIMARY KEY (`carmake_id`),
KEY `name` (`name`(3))
) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=latin1 |
+---------+---------------------------------------------------------------------+
1 row in set (0.00 sec)

从carmake 输出中 选择不同的国家/地区

+----------------+
| country        |
+----------------+
| Italy          |
| Germany        |
| England        |
| USA            |
| France         |
| South Korea    |
| NULL           |
| Australia      |
| Spain          |
| Czech Republic |
+----------------+

问题答案:
ALTER TABLE
    `table_name`
MODIFY COLUMN
    `column_name2` enum(
        'existing_value1',
        'existing_value2',
        'new_value1',
        'new_value2'
    )
NOT NULL AFTER `column_name1`;


 类似资料:
  • 我正在写PostgreSQL表模式。 那么我如何将“轿车”、“掀背车”、“小型货车”等汽车类型添加为枚举数据类型

  • 问题内容: 我想将多列的数据类型从float更改为int。最简单的方法是什么? 尚无数据可担心。 问题答案: http://dev.mysql.com/doc/refman/5.1/en/alter- table.html 这将更改给定列的数据类型 根据您希望修改的列数,最好生成一个脚本或使用某种mysql客户端GUI

  • 问题内容: 我正在尝试使用PHP将新列添加到我的MYSQL表中。我不确定如何更改表以创建新列。在我的评估表中,我有: 假设我有一个带有文本框的页面,然后输入文本框并按一个按钮,则表将更新为: 我的代码: 问题答案: 您的桌子: 你也可以

  • 问题内容: 我在MySQL中使用ENUM数据类型,想重用它,但不重新输入值。MySQL中是否有等效于C,C ++定义类型的方法? 我要执行以下操作: 这可能吗? 谢谢 问题答案: 号MySQL不支持或为,例如,PostgreSQL的呢。 您可能必须再次输入所有名称。您可以使用复制和粘贴或SQL脚本来减轻执行此操作所需的工作。 您还可以使用这些表来获取ENUM定义的文本,然后将其内插到新的语句中。

  • 我需要在一个表中添加多个列,但将这些列放在一个名为的列之后。 我试过这个: 我得到这个错误: 您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以了解在'后面第7行的')处使用的正确语法 如何在这样的查询中使用AFTER?

  • 本文向大家介绍如何在MySQL ENUM数据类型中插入默认值?,包括了如何在MySQL ENUM数据类型中插入默认值?的使用技巧和注意事项,需要的朋友参考一下 我们可以借助ENUM数据类型的DEFAULT属性来实现。如果未指定值,则DEFAULT属性会使ENUM数据类型具有默认值。换句话说,我们可以说INSERT语句不必为此字段包含值,因为如果不包含该值,那么将插入DEFAULT之后的值。DEFA