更改MySql Null和默认属性
我有一个具有以下属性的表:更改MySql Null和默认属性,mysql,Mysql,我有一个具有以下属性的表: mysql> desc oc_product; +-------------------+---------------+------+-----+---------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------------+--------
mysql> desc oc_product;
+-------------------+---------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+---------------+------+-----+---------------------+----------------+
| date_available | date | YES | | NULL | |
我感兴趣的是将属性Null
设置为NO
,将Default
设置为0000-00-00
我已经完成了默认
->0000-00-00
部分,使用了:
更改表oc_产品更改日期_可用日期_可用日期默认为“0000-00-00”代码>
但是,我无法将Null
更改为NO
我尝试了以下查询:
更改表oc\u产品更改日期\u可用日期\u可用日期空号
在某些数据库中,您可以通过添加null
或notnull
来指定它是否可以为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'
如果不需要更改列名,可以使用“修改”而不是“更改”。除此之外,他们是一样的。ALTER TABLE
语法及其所有选项都有很好的文档记录,因此您可以在这里查看:
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
更改默认值并使其可为空
ALTER TABLE oc_product
CHANGE `date_available` `date_available` DATE DEFAULT '0000-00-00 00:00:00' NULL;
我刚刚尝试了这个,虽然它确实将Null
更改为NO
,但它似乎将默认值更改为Null
。我使用change
而不是MODIFY
,因为我使用的GUI就是这样输出的(sqlYOG)