我有一个表,在创建表时没有指定默认值。 现在我想将默认值更改为''(空字符串)。 当我运行alter table query时它会成功,但是如果没有指定列值,仍然会在新行插入表中将NULL视为默认值。
TABLE Schema ::
CREATE TABLE `table1` (
`col1` INT(11) NOT NULL AUTO_INCREMENT,
`col2` TEXT,
`col3` INT(11) DEFAULT NULL,
`col4` TINYINT(1) DEFAULT '0',
PRIMARY KEY (`id`)
);
ALTER Query ::
ALTER TABLE `table1` change `col2` `col2` text default '';
答案 0 :(得分:17)
Blob和文本列的值不能为DEFAULT
(Ref)。根据平台的不同,当您尝试执行此操作时,MySQL可能会生成警告或错误。
将数据类型更改为更合适的类型(例如VARCHAR
)。
答案 1 :(得分:2)
试试这个
ALTER TABLE yourtable_name ALTER COLUMN columnname SET DEFAULT ' ' ;
它为我工作。希望它会帮助你。
答案 2 :(得分:1)
使用modify
ALTER TABLE `table1` MODIFY column `col2` text default '';
答案 3 :(得分:1)
首先,表模式不正确。它会抛出错误: 关键栏' id'表
中不存在CREATE TABLE `test_table1` (
`col1` INT(11) NOT NULL AUTO_INCREMENT,
`col2` TEXT,
`col3` INT(11) DEFAULT NULL,
`col4` TINYINT(1) DEFAULT '0',
PRIMARY KEY (`id`)
);
纠正问题本身
CREATE TABLE `test_table1` (
`col1` INT(11) NOT NULL AUTO_INCREMENT,
`col2` TEXT,
`col3` INT(11) DEFAULT NULL,
`col4` TINYINT(1) DEFAULT '0',
PRIMARY KEY (`col1`)
);
现在,如果您要运行Alter法规
ALTER TABLE `table1` change `col2` `col2` text default '';
错误信息是:BLOB,TEXT,GEOMETRY或JSON列' col2'无法获得default
值。 Reference
答案 4 :(得分:0)
ALTER TABLE `table1` change `col2` `col2` text NOT NULL default '';
答案 5 :(得分:0)
在phpmyadmin中,转到"更改"特定字段的选项,并选择Default2作为As定义:并将下面的文本框留空
例如:
场频
键入VARCHAR
长度/值1 20
默认值2已定义:和文本框为空白
最后点击“保存”按钮
答案 6 :(得分:-1)
使用以下查询更改表结构
USE MODIFY ALTER TABLE <table> MODIFY <column> VARCHAR(<XX>) DEFAULT '';