MySQL創(chuàng)建表時(shí)字符串的默認(rèn)值問題
mysql創(chuàng)建表時(shí)字符串的默認(rèn)值
使用MySQL創(chuàng)建表時(shí),char或varchar類型的變量可以設(shè)置默認(rèn)值null或Empty String。
操作
創(chuàng)建如下DDL格式的一張表:
執(zhí)行以下insert語(yǔ)句,觀察char和varchar類型的默認(rèn)值:
insert into t_table(iddddd) values(11);
產(chǎn)生如下表數(shù)據(jù):
心得
第一,null和Empty String是兩種不同的數(shù)據(jù),字段id3和id6中存放的是”“空字符串。
第二,如果手動(dòng)在Navicat里面改變了id、id2、id4、id5中的值,那么盡管刪除所做的改變,字段的值不會(huì)恢復(fù)到之前的null,而是變成了Empty String “”。比如先將字段id的值變成aaa,后來(lái)又刪除,此時(shí)字段id的值為Empty String “”。
當(dāng)然使用以下update語(yǔ)句可以恢復(fù)到id=null
update t_table set id=null where iddddd=11;
第三,在對(duì)非空進(jìn)行查詢的時(shí)候,最好對(duì)null和Empty String “”都做判斷。
例如對(duì)于Hibernate的QBC查詢可以加上兩個(gè)限制條件:
Restrictions.isNotNull("propertyName") // 判斷不為null Restrictions.ne("propertyName") // 判斷不為""
在mysql創(chuàng)建后在往表中添加默認(rèn)值
經(jīng)常在mysql創(chuàng)建,根據(jù)項(xiàng)目需求加上默認(rèn)值,我在這里個(gè)自己記下
LTER TABLE 【表名】CHANGE COLUMN 【字段名】【字段名】【類型】 DEFAULT 【默認(rèn)值(是varchar類型要加'')】;
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- MySQL?臨時(shí)表使用和創(chuàng)建
- MySQL分表自動(dòng)化創(chuàng)建的實(shí)現(xiàn)方案
- SQL創(chuàng)建臨時(shí)表的兩種方法
- SQL?server修改表錯(cuò)誤提示:阻止保存需要重新創(chuàng)建表的更改解決辦法
- mysql創(chuàng)建表分區(qū)的實(shí)現(xiàn)示例
- SQL?Server數(shù)據(jù)庫(kù)表的創(chuàng)建與管理操作大全
- MySQL實(shí)現(xiàn)簡(jiǎn)單的創(chuàng)建庫(kù)和創(chuàng)建表操作方法
- 詳解SQL創(chuàng)建表的幾種方法
相關(guān)文章
如何查本地mysql的username和密碼及更新密碼幾種方式
這篇文章主要介紹了光宇如何查找本地MySQL數(shù)據(jù)庫(kù)的用戶名和密碼,包括查看當(dāng)前用戶、列出所有用戶、重置密碼以及檢查配置文件,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-11-11解決Windows環(huán)境下安裝 mysql-8.0.11-winx64 遇到的問題
這篇文章主要介紹了Windows環(huán)境下安裝 mysql-8.0.11-winx64 遇到的問題及解決辦法 ,需要的朋友可以參考下2018-10-10

MySQL數(shù)據(jù)庫(kù)防止人為誤操作的實(shí)例講解

MySQL按月自動(dòng)設(shè)置表分區(qū)的實(shí)現(xiàn)

mysql執(zhí)行sql文件報(bào)錯(cuò)Error: Unknown storage engine‘InnoDB’的解決方法

Mysql事務(wù)的隔離級(jí)別(臟讀+幻讀+可重復(fù)讀)