将TEXT列默认值从null更改为''(空字符串)

Tus*_*edi 10 mysql sql

我有一个表,在创建表时没有指定默认值.现在我想将默认值更改为''(空字符串).当我运行alter table query时它会成功但仍然在新行插入表上,如果未指定列值,则将NULL视为默认值.

表架构::

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`)
);
Run Code Online (Sandbox Code Playgroud)

ALTER查询::

ALTER TABLE `table1` change `col2` `col2` text  default '';
Run Code Online (Sandbox Code Playgroud)

Sal*_*n A 17

Blob和文本列不能具有DEFAULT值(Ref).根据平台,MySQL可能会在您尝试执行此操作时生成警告或错误.

将数据类型更改为更合适的类型(例如VARCHAR).

  • @ToolmakerSteve - 对于任何较新版本的 mysql,varchar 的最大长度不再是 255。 (3认同)

Zaf*_*ffy 0

ALTER TABLE `table1` change `col2` `col2` text  NOT NULL default '';
Run Code Online (Sandbox Code Playgroud)