如何更改MySql中的列默认值

时间:2013-11-19 06:59:04

标签: mysql

我正在使用MySql5.5。

我有一个表media__gallery,我希望将列default_format的默认值从'NO'更改为'YES',但是当我编写查询并运行命令时行没有更新。

我的查询:

ALTER TABLE `media__gallery` CHANGE `default_format` `default_format` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT 'YES';

MySql表:

mysql> desc media__gallery;
+----------------+--------------+------+-----+---------+----------------+
| Field          | Type         | Null | Key | Default | Extra          |
+----------------+--------------+------+-----+---------+----------------+
| id             | int(11)      | NO   | PRI | NULL    | auto_increment |
| name           | varchar(255) | NO   |     | NULL    |                |
| context        | varchar(64)  | NO   |     | NULL    |                |
| default_format | varchar(255) | NO   |     | NULL    |                |
| enabled        | tinyint(1)   | NO   |     | NULL    |                |
| updated_at     | datetime     | NO   |     | NULL    |                |
| created_at     | datetime     | NO   |     | NULL    |                |
| category_id    | int(11)      | YES  | UNI | NULL    |                |
+----------------+--------------+------+-----+---------+----------------+

我在这里缺少什么?

2 个答案:

答案 0 :(得分:1)

ALTER TABLE media_gallery
ALTER COLUMN default_format SET DEFAULT 'YES'

这应该可以解决问题。

查看here (W3Schools - SQL DEFAULT constraint)了解更多信息。

答案 1 :(得分:0)

试试这个:

ALTER TABLE `media__gallery`
CHANGE COLUMN `default_format` `default_format` VARCHAR(255) NULL DEFAULT 'YES'

必须手动设置旧值

UPDATE `media__gallery` SET `default_format`='YES' WHERE  `default_format`='NO'