Wil*_*ill 18 mysql alter-table
show create table命令显示以下内容:
'columnA' varchar(6) NOT NULL DEFAULT '';
Run Code Online (Sandbox Code Playgroud)
如何修改该列以删除not null?我需要它:
'columnA' varchar(6) DEFAULT NULL;
Run Code Online (Sandbox Code Playgroud)
我认为以下内容可行,但它没有效果:
ALTER TABLE tbl_name MODIFY columnA varchar(6) DEFAULT NULL;
Run Code Online (Sandbox Code Playgroud)
Eri*_*lje 24
试试这个:
ALTER TABLE tbl_name MODIFY columnA varchar(6) NULL DEFAULT NULL;
Run Code Online (Sandbox Code Playgroud)
通常,Eric的答案应该起作用:
ALTER TABLE tbl_name MODIFY columnA varchar(6) NULL DEFAULT NULL;
Run Code Online (Sandbox Code Playgroud)
(尽管“ NULL DEFAULT NULL”部分是可选的)。
但是像您一样,我有一个案例,它什么也不做就返回了OK。就我而言,这似乎是由于我的钥匙是主钥匙的一部分。因此,我必须执行以下操作:
ALTER TABLE tbl_name DROP PRIMARY KEY;
ALTER TABLE tbl_name MODIFY columnA varchar(6);
ALTER TABLE tbl_name ADD PRIMARY KEY (columnA);
Run Code Online (Sandbox Code Playgroud)
最后一个查询指定您的主键实际上是什么。
另外,如果有人认为这太冗长,则以下组合查询将无效,即使它应该相同:
ALTER TABLE tbl_name DROP PRIMARY KEY, MODIFY columnA varchar(6), ADD PRIMARY KEY (columnA);
Run Code Online (Sandbox Code Playgroud)
我假设mysql将最后一个查询重写为不同的顺序,以便在执行修改时主键仍然存在,因此需要将其分为三个语句。
仅供参考,这是在mysql 5.1.47上,但是我还没有找到任何文档说明为什么会发生这种情况,所以我不知道受影响的版本。
| 归档时间: |
|
| 查看次数: |
27776 次 |
| 最近记录: |