概述
我在Mysql数据库中创建了一个新的新表。 我添加了一个新字段,名为“rks”,默认为空,数据类型为varchar(20)。mysql“默认”列值NULL在执行PRIMARY KEY的alter table时正在被擦除
如果我执行alter table,修改这个字段,我可以看到默认列中的“NULL”被删除为空(万一它是主键),但是如果万一我降级它从主键,对这个变量进行修改,保留状态“NULL”。
请注意:我使用“default null”,而使用alter table如下。
mysql> alter table FileTable modify column rks varchar(40) default NULL collate latin1_bin;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
进一步观察:
如果字段是主键,和varchar类型,操作的方式改变 表中删除NULL。
如果字段类型为bigint,并且主键为 ,则在alter table之后将NULL更改为0。
我想知道,为什么会发生这种变化?
Newly created:
+-------------------------+--------------+-------------------+------+-----+---------+
| Field | Type | Collation | Null | Key | Default |
+-------------------------+--------------+-------------------+------+-----+---------+
| rks | varchar(20) | latin1_bin | YES | PRI | NULL |
+-------------------------+--------------+-------------------+------+-----+---------+
After alter table:
+-------------------------+--------------+-------------------+------+-----+---------+
| Field | Type | Collation | Null | Key | Default |
+-------------------------+--------------+-------------------+------+-----+---------+
| rks | varchar(40) | latin1_bin | NO | PRI | |
+-------------------------+--------------+-------------------+------+-----+---------+
请参阅NULL被擦除时,如果该字段是整数类型,这将更改为0
最后
以上就是秀丽小兔子为你收集整理的mysql alter null_mysql“默认”列值NULL在执行PRIMARY KEY的alter table时正在被擦除的全部内容,希望文章能够帮你解决mysql alter null_mysql“默认”列值NULL在执行PRIMARY KEY的alter table时正在被擦除所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复