我有一个具有以下属性的表:
mysql> desc oc_product;
+-------------------+---------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+---------------+------+-----+---------------------+----------------+
| date_available | date | YES | | NULL | |
我有兴趣将属性设置Null
为NO
和设置Default
为0000-00-00
。
我使用以下命令完成了Default
->0000-00-00
部分:
ALTER TABLE oc_product CHANGE date_available date_available date DEFAULT '0000-00-00';
但是,我无法更改Null
为NO
。
我已经尝试了以下查询:
ALTER TABLE oc_product CHANGE date_available date_available date NULL NO;
在某些数据库,你可以通过添加指定wheter它可以为空或不NULL
和NOT NULL
:
ALTER TABLE oc_product MODIFY COLUMN date_available NOT NULL;
但我相信在MySQL中,您还需要指定整个字段类型,因此它将是:
ALTER TABLE oc_product MODIFY COLUMN date_available date NOT NULL;
而且,如果您也想指定(或保留)默认值,则还需要添加它。这就是MySQL的问题,您必须根据需要指定整个字段定义,而不仅仅是更改。
ALTER TABLE oc_product MODIFY COLUMN date_available date NOT NULL DEFAULT '0000-00-00'
如果不需要更改列名,则可以使用MODIFY而不是CHANGE。除此之外,它们是相同的。在ALTER TABLE
语法和其所有的选项都记录好,所以你可以看看这里:
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句