mysql default ''自动变成not null default ''
时间: 2023-12-26 17:03:52 浏览: 167
在 MySQL 中,当你设置一个列的默认值为 `''`(空字符串)时,默认情况下该列会被视为允许为 `NULL`。但如果你在创建表时使用了 `NOT NULL` 约束条件,那么即使你设置了默认值为 `''`,该列也会被视为不允许为 `NULL`。
因此,如果你想要在列的默认值为 `''` 的情况下,仍然允许该列为 `NULL`,可以在列定义中不使用 `NOT NULL` 约束条件。例如:
```sql
CREATE TABLE mytable (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) DEFAULT '',
age INT DEFAULT NULL,
PRIMARY KEY (id)
);
```
在上面的例子中,`name` 列的默认值为 `''`,但它并没有使用 `NOT NULL` 约束条件,因此该列仍然允许为 `NULL`。而 `age` 列的默认值为 `NULL`,因此它也允许为 `NULL`。
相关问题
mysql新增一列NOT NULL后面必须要加DEFAULT吗
在MySQL中,当你使用`ADD COLUMN`为表增加新的列并且指定`NOT NULL`约束,表示该列不允许有NULL值,但是是否需要同时指定`DEFAULT`值取决于你的需求。
如果希望为这个`NOT NULL`的列提供一个默认值,你应该在`ADD COLUMN`语句中包括`DEFAULT`关键字并跟随默认值。例如:
```sql
ALTER TABLE table_name ADD COLUMN column_name data_type NOT NULL DEFAULT default_value;
```
比如,如果你想要一个整数类型的列,并为其设置默认值0:
```sql
ALTER TABLE table_name ADD COLUMN column_name INT NOT NULL DEFAULT 0;
```
然而,如果你确定该列永远不会有任何默认值,可以省略`DEFAULT`部分,只保留`NOT NULL`约束:
```sql
ALTER TABLE table_name ADD COLUMN column_name INT NOT NULL;
```
mysql default怎么设置null
MySQL中的默认设置是NULL,这意味着如果您没有为列指定任何值,则该列将自动设置为NULL。如果您想要更改默认设置,可以使用ALTER TABLE语句来更改列的默认值。例如,以下语句将更改列“my_column”的默认值为:
ALTER TABLE my_table ALTER COLUMN my_column SET DEFAULT ;
请注意,如果您想要将默认值更改为NULL,则可以使用以下语句:
ALTER TABLE my_table ALTER COLUMN my_column DROP DEFAULT;
这将删除列“my_column”的默认值,使其默认为NULL。
阅读全文