最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL使用觸發(fā)器如何實(shí)現(xiàn)CHECK檢查約束的功能

 更新時(shí)間:2024年01月31日 09:57:02   作者:pan_junbiao  
這篇文章主要介紹了MySQL使用觸發(fā)器如何實(shí)現(xiàn)CHECK檢查約束的功能,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

MySQL觸發(fā)器實(shí)現(xiàn)CHECK檢查約束

在MySQL中,提供了CHECK檢查約束用來(lái)指定某列的可取值的范圍,它通過(guò)限制輸入到列中的值來(lái)強(qiáng)制域的完整性。

但是目前的MySQL版本只是對(duì)CHECK約束進(jìn)行了分析處理,但會(huì)被直接忽略,并不會(huì)報(bào)錯(cuò)。

示例

創(chuàng)建學(xué)生信息表tb_student時(shí),將年齡(age)的值設(shè)置在1至100之間的數(shù)值。

-- 學(xué)生信息表
CREATE TABLE tb_student
(
	id INT AUTO_INCREMENT PRIMARY KEY,
	name VARCHAR(30),
	age INT NOT NULL CHECK(age>0 AND age<100)
);

上述示例中,雖然給年齡(age)字段設(shè)置了CHECK檢查約束,但是仍然可以往該數(shù)據(jù)表中添加不符合要求的年齡數(shù)組

例如:-1或者120。

解決方法

使用觸發(fā)器實(shí)現(xiàn)CHECK檢查約束的功能。

(1)創(chuàng)建tb_student(學(xué)生信息表)。

-- 創(chuàng)建學(xué)生信息表
CREATE TABLE tb_student
(
	id INT AUTO_INCREMENT PRIMARY KEY,
	name VARCHAR(30),
	age INT NOT NULL
);

(2)創(chuàng)建檢查年齡(age)字段是否有效的觸發(fā)器。

-- 創(chuàng)建觸發(fā)器
CREATE TRIGGER trg_tb_student_insert_check BEFORE INSERT
ON tb_student FOR EACH ROW
BEGIN
	DECLARE msg varchar(100);
 
	IF NEW.age <= 0 OR NEW.age >= 100 
	THEN
		SET msg = CONCAT('您輸入的年齡值:',NEW.age,' 為無(wú)效的年齡,請(qǐng)輸入0到100以內(nèi)的有效數(shù)字。');
		SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT = msg;
	END IF;
END;

(3)編寫測(cè)試語(yǔ)句。

INSERT INTO tb_student(name,age) VALUES('pan_junbiao的博客',120);

執(zhí)行結(jié)果:

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解mysql DML語(yǔ)句的使用

    詳解mysql DML語(yǔ)句的使用

    這篇文章主要介紹了詳解mysql DML語(yǔ)句的使用,幫助大家更好的理解和學(xué)習(xí)mysql,感興趣的朋友可以了解下
    2020-08-08
  • 微信昵稱帶符號(hào)導(dǎo)致插入MySQL數(shù)據(jù)庫(kù)時(shí)出錯(cuò)的解決方案

    微信昵稱帶符號(hào)導(dǎo)致插入MySQL數(shù)據(jù)庫(kù)時(shí)出錯(cuò)的解決方案

    Mysql的utf8編碼最多3個(gè)字節(jié),而Emoji表情或者某些特殊字符是4個(gè)字節(jié),所以會(huì)導(dǎo)致帶有表情的昵稱插入數(shù)據(jù)庫(kù)時(shí)出錯(cuò),下面給大家分享下解決方案,需要的朋友參考下吧
    2016-12-12
  • 手動(dòng)管理MySQL8.0中的Undo表空間的使用

    手動(dòng)管理MySQL8.0中的Undo表空間的使用

    本文主要介紹了MySQL 8.0中手動(dòng)管理Undo表空間,包括創(chuàng)建、配置、使用和維護(hù)這些表空間的具體步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • MySQL忘記root密碼的兩種解決方案

    MySQL忘記root密碼的兩種解決方案

    在使用MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)時(shí),有時(shí)候會(huì)碰到忘記了root用戶的密碼的情況,這時(shí)候就需要找到一種解決方案來(lái)重置或者恢復(fù)root密碼,本文將介紹兩種常用的方法來(lái)解決這個(gè)問(wèn)題,需要的朋友可以參考下
    2024-09-09
  • mysql5.7.19 解壓版安裝教程詳解(附送純凈破解中文版SQLYog)

    mysql5.7.19 解壓版安裝教程詳解(附送純凈破解中文版SQLYog)

    Mysql5.7.19版本是今年新推出的版本,最近幾個(gè)版本的MySQL都不再是安裝版,都是解壓版了,大家在使用過(guò)程中遇到很多問(wèn)題,下面小編給大家?guī)?lái)了MySQL5.7.19 解壓版安裝教程詳解,感興趣的朋友一起看看吧
    2017-10-10
  • mysql的事務(wù)隔離級(jí)別詳細(xì)解析

    mysql的事務(wù)隔離級(jí)別詳細(xì)解析

    這篇文章主要介紹了mysql的事務(wù)隔離級(jí)別詳細(xì)解析,事務(wù)是應(yīng)用程序中一系列嚴(yán)密的操作,所有操作必須成功完成,否則在每個(gè)操作中所作的所有更改都會(huì)被撤消,需要的朋友可以參考下
    2023-12-12
  • MySQL實(shí)現(xiàn)兩張表數(shù)據(jù)的同步

    MySQL實(shí)現(xiàn)兩張表數(shù)據(jù)的同步

    本文將介紹mysql 觸發(fā)器實(shí)現(xiàn)兩個(gè)表的數(shù)據(jù)同步,需要學(xué)習(xí)MySQL的童鞋可以參考。
    2016-10-10
  • Mysql主鍵相關(guān)的sql語(yǔ)句集錦

    Mysql主鍵相關(guān)的sql語(yǔ)句集錦

    本文主要搜集總結(jié)了一些和mysql主鍵相關(guān)的sql語(yǔ)句,包括增加主鍵或者更改表的列為主鍵之類的sql語(yǔ)句,希望對(duì)大家能有所幫助
    2014-08-08
  • MySQL中數(shù)據(jù)庫(kù)監(jiān)控核心要素與實(shí)施策略詳解

    MySQL中數(shù)據(jù)庫(kù)監(jiān)控核心要素與實(shí)施策略詳解

    數(shù)據(jù)庫(kù)監(jiān)控是系統(tǒng)穩(wěn)定性的基石,作為核心組件,數(shù)據(jù)庫(kù)的穩(wěn)定性直接決定系統(tǒng)可用性,因此監(jiān)控至關(guān)重要,下面小編就和大家詳細(xì)講講MySQL中數(shù)據(jù)庫(kù)監(jiān)控核心要素與實(shí)施策略吧
    2025-11-11
  • MYSQL主從不同步延遲原理分析及解決方案

    MYSQL主從不同步延遲原理分析及解決方案

    這篇文章介紹了MYSQL主從不同步延遲原理分析及解決方案,有需要的朋友可以參考一下
    2013-09-09

最新評(píng)論

盐山县| 涟水县| 铜梁县| 浮山县| 衡阳市| 开封市| 临泉县| 奉节县| 淮阳县| 鲁甸县| 景东| 永靖县| 连江县| 江安县| 利川市| 舟曲县| 九江县| 道孚县| 张掖市| 涪陵区| 绍兴市| 诏安县| 信丰县| 邮箱| 拜城县| 兴安县| 勃利县| 浦北县| 五常市| 垣曲县| 互助| 鄯善县| 碌曲县| 陇西县| 贺兰县| 黄平县| 天台县| 锦州市| 吉木萨尔县| 伊金霍洛旗| 神农架林区|