0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

如何在SQL中創(chuàng)建觸發(fā)器

CHANBAEK ? 來源:網(wǎng)絡整理 ? 2024-07-18 16:01 ? 次閱讀

在SQL中,觸發(fā)器(Trigger)是一種特殊類型的存儲過程,它自動執(zhí)行或激活響應表上的數(shù)據(jù)修改事件(如INSERT、UPDATE、DELETE等)。觸發(fā)器可以用于維護數(shù)據(jù)庫的完整性、自動化復雜的業(yè)務邏輯,以及執(zhí)行審計和記錄更改歷史等功能。下面,我將詳細解釋如何在SQL中創(chuàng)建觸發(fā)器,并附帶示例代碼。

1. 觸發(fā)器的基本概念

  • 觸發(fā)器類型
    • DML觸發(fā)器 :在數(shù)據(jù)修改語言(DML)事件上觸發(fā),如INSERT、UPDATE、DELETE。
    • DDL觸發(fā)器 :在數(shù)據(jù)定義語言(DDL)事件上觸發(fā),如CREATE、ALTER、DROP等。但DDL觸發(fā)器在SQL Server中支持較多,其他數(shù)據(jù)庫系統(tǒng)可能不完全支持或支持方式不同。
    • 登錄觸發(fā)器 :在登錄事件上觸發(fā),主要用于審計或限制用戶登錄。
  • 觸發(fā)器結(jié)構(gòu)
    觸發(fā)器通常由以下部分組成:
    • 觸發(fā)時機 :BEFORE(或INSTEAD OF,對于INSTEAD OF觸發(fā)器)或AFTER(對于DML觸發(fā)器)。
    • 觸發(fā)事件 :INSERT、UPDATE、DELETE等。
    • 表名 :觸發(fā)器所關(guān)聯(lián)的表。
    • 觸發(fā)器體 :觸發(fā)器被激活時要執(zhí)行的SQL語句。

2. 創(chuàng)建DML觸發(fā)器的步驟

以MySQL為例,創(chuàng)建DML觸發(fā)器的基本語法如下:

CREATE TRIGGER trigger_name  
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}  
ON table_name FOR EACH ROW  
BEGIN  
    -- 觸發(fā)器體  
    -- 這里可以寫多條SQL語句  
END;

注意:

  • MySQL的觸發(fā)器需要使用分號;來結(jié)束每條SQL語句,但在觸發(fā)器內(nèi)部,由于整個觸發(fā)器體被視為一個整體,所以需要在觸發(fā)器體之前聲明DELIMITER來改變命令分隔符,以避免與觸發(fā)器體內(nèi)的分號沖突。
  • 對于非MySQL數(shù)據(jù)庫(如SQL Server、Oracle、PostgreSQL等),語法可能略有不同,但基本概念相同。

3. 示例:創(chuàng)建DML觸發(fā)器

示例1:AFTER INSERT觸發(fā)器

假設有一個員工表employees(包含id, name, department_id字段)和一個部門表departments(包含id, name字段)。我們希望在每次向employees表中插入新員工時,自動檢查該員工所屬的部門是否存在于departments表中,如果不存在,則向departments表中插入該部門。

DELIMITER 
$$
  
  
CREATE TRIGGER CheckDepartmentBeforeInsert  
AFTER INSERT ON employees  
FOR EACH ROW  
BEGIN  
    DECLARE dept_exists INT DEFAULT 0;  
      
    SELECT COUNT(*) INTO dept_exists  
    FROM departments  
    WHERE id = NEW.department_id;  
      
    IF dept_exists = 0 THEN  
        INSERT INTO departments (id, name) VALUES (NEW.department_id, CONCAT('Unknown Department ', NEW.department_id));  
    END IF;  
END
$$
  
  
DELIMITER ;

注意 :上面的例子假設了NEW關(guān)鍵字用于訪問新插入行的值,這在MySQL中是有效的,但在其他數(shù)據(jù)庫系統(tǒng)中可能需要不同的方法。

示例2:BEFORE UPDATE觸發(fā)器

假設我們想在更新employees表的salary字段前,檢查新工資是否小于舊工資,如果是,則阻止更新。

DELIMITER 
$$
  
  
CREATE TRIGGER PreventSalaryDecrease  
BEFORE UPDATE ON employees  
FOR EACH ROW  
BEGIN  
    IF NEW.salary < OLD.salary THEN  
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Salary cannot be decreased!';  
    END IF;  
END
$$
  
  
DELIMITER ;

注意 :在MySQL中,SIGNAL語句用于拋出異常,這里用于阻止更新。在其他數(shù)據(jù)庫系統(tǒng)中,可能需要使用不同的錯誤處理機制。

4. 觸發(fā)器的管理

  • 查看觸發(fā)器 :使用SHOW TRIGGERS;(MySQL)或數(shù)據(jù)庫特定的查詢命令來查看已創(chuàng)建的觸發(fā)器。
  • 刪除觸發(fā)器 :使用DROP TRIGGER trigger_name;命令來刪除觸發(fā)器。
  • 修改觸發(fā)器 :由于觸發(fā)器是直接嵌入到數(shù)據(jù)庫中的,因此不能像修改普通SQL語句那樣直接修改觸發(fā)器。要修改觸發(fā)器,通常需要先刪除舊觸發(fā)器,然后創(chuàng)建新的觸發(fā)器。

5. 注意事項

  • 觸發(fā)器可以非常強大,但也可能導致性能問題,特別是在對大量數(shù)據(jù)進行操作時。
  • 觸發(fā)器可能會使數(shù)據(jù)庫的依賴關(guān)系變得復雜,增加維護難度。
  • 在使用觸發(fā)器之前,應仔細考慮是否真的需要它們,或者是否有更好的替代。

6. 觸發(fā)器的深入使用

6.1 復雜業(yè)務邏輯的實現(xiàn)

觸發(fā)器非常適合用來實現(xiàn)復雜的業(yè)務邏輯,這些邏輯可能跨越多個表,并且需要在數(shù)據(jù)變更時自動執(zhí)行。例如,在電子商務系統(tǒng)中,當訂單狀態(tài)從“待支付”變?yōu)椤耙阎Ц丁睍r,可能需要更新庫存量、計算傭金、發(fā)送通知郵件等一系列操作。這些操作可以通過一個或多個觸發(fā)器來自動化完成,從而減少手動干預和出錯的可能性。

6.2 數(shù)據(jù)完整性和約束

觸發(fā)器還可以用來維護數(shù)據(jù)庫的完整性和實施復雜的約束條件。雖然數(shù)據(jù)庫管理系統(tǒng)(DBMS)提供了許多內(nèi)置的約束類型(如主鍵、外鍵、唯一約束等),但某些復雜的業(yè)務規(guī)則可能無法直接通過這些約束來表達。這時,觸發(fā)器就可以派上用場。例如,可以創(chuàng)建一個觸發(fā)器來確保在任何時候,某個表的某個字段的值都符合特定的業(yè)務規(guī)則(如價格必須大于0)。

6.3 審計和日志記錄

審計和日志記錄是觸發(fā)器另一個常見的應用場景。通過在關(guān)鍵表上設置觸發(fā)器,可以自動記錄數(shù)據(jù)的變更歷史,包括變更的時間、執(zhí)行變更的用戶、變更前后的數(shù)據(jù)等。這對于后續(xù)的數(shù)據(jù)分析、問題排查和合規(guī)性審計都非常有幫助。

7. 觸發(fā)器的最佳實踐

7.1 保持觸發(fā)器簡單

盡量保持觸發(fā)器的邏輯簡單明了。復雜的觸發(fā)器不僅難以理解和維護,還可能影響數(shù)據(jù)庫的性能。如果可能的話,將復雜的邏輯拆分成多個小的觸發(fā)器或存儲過程。

7.2 避免在觸發(fā)器中執(zhí)行復雜的查詢

在觸發(fā)器中執(zhí)行復雜的查詢(特別是涉及多個表和大量數(shù)據(jù)的查詢)可能會顯著影響數(shù)據(jù)庫的性能。如果必須在觸發(fā)器中執(zhí)行查詢,請確保這些查詢盡可能高效,并考慮使用索引來加速查詢速度。

7.3 使用事務控制

如果觸發(fā)器中的操作需要保證一致性,那么應該使用事務控制來確保這些操作要么全部成功,要么全部失敗。在MySQL中,可以使用BEGIN ... END;COMMIT;ROLLBACK;語句來控制事務。

7.4 避免在觸發(fā)器中調(diào)用其他觸發(fā)器

雖然某些數(shù)據(jù)庫系統(tǒng)允許在觸發(fā)器中調(diào)用其他觸發(fā)器(這被稱為觸發(fā)器鏈),但這種做法通常是不推薦的。因為它可能會導致難以追蹤的復雜性和性能問題。如果確實需要多個觸發(fā)器來響應同一個事件,請考慮將它們合并為一個觸發(fā)器或使用存儲過程來管理這些邏輯。

8. 觸發(fā)器的限制

8.1 性能影響

觸發(fā)器的自動執(zhí)行特性意味著它們會在每次滿足條件的數(shù)據(jù)變更時運行。這可能會對數(shù)據(jù)庫的性能產(chǎn)生顯著影響,特別是在高并發(fā)場景下。因此,在設計觸發(fā)器時需要仔細考慮其潛在的性能影響,并采取適當?shù)膬?yōu)化措施。

8.2 調(diào)試和故障排除

觸發(fā)器的調(diào)試和故障排除可能比普通的SQL語句或存儲過程更加困難。因為觸發(fā)器的執(zhí)行是隱式的,它們可能在用戶不知情的情況下被觸發(fā)。此外,觸發(fā)器中的邏輯可能跨越多個表和復雜的業(yè)務規(guī)則,這使得問題的定位和解決變得更加復雜。

8.3 可移植性問題

不同的數(shù)據(jù)庫系統(tǒng)對觸發(fā)器的支持程度和語法可能有所不同。因此,使用觸發(fā)器的應用程序可能會面臨可移植性問題。在將應用程序遷移到新的數(shù)據(jù)庫系統(tǒng)時,可能需要重寫或修改觸發(fā)器代碼以適應新的環(huán)境。

9. 在不同數(shù)據(jù)庫系統(tǒng)中的實現(xiàn)差異

9.1 MySQL

MySQL支持BEFORE和AFTER觸發(fā)器,可以在INSERT、UPDATE、DELETE事件上觸發(fā)。MySQL觸發(fā)器使用NEWOLD關(guān)鍵字來訪問新行和舊行的數(shù)據(jù)(對于UPDATE和DELETE操作)。MySQL還允許在觸發(fā)器中使用復雜的邏輯和事務控制語句。

9.2 SQL Server

SQL Server也支持BEFORE和AFTER觸發(fā)器(在SQL Server中稱為INSTEAD OF和AFTER觸發(fā)器),但INSTEAD OF觸發(fā)器主要用于視圖。SQL Server觸發(fā)器可以使用T-SQL語言編寫,并支持復雜的邏輯和事務控制。與MySQL不同,SQL Server的觸發(fā)器沒有NEWOLD關(guān)鍵字;相反,它使用INSERTEDDELETED特殊表來訪問新行和舊行的數(shù)據(jù)。

9.3 Oracle

Oracle數(shù)據(jù)庫支持行級和語句級觸發(fā)器,可以在DML和DDL事件上觸發(fā)。Oracle觸發(fā)器可以使用PL/SQL語言編寫,并支持復雜的邏輯和事務控制。與MySQL和SQL Server類似,Oracle也使用特殊表(如:NEW:OLD偽記錄)來訪問新行和舊行的數(shù)據(jù)。

9.4 PostgreSQL

PostgreSQL中的觸發(fā)器支持非常靈活,可以在DML(數(shù)據(jù)操作語言)和DDL(數(shù)據(jù)定義語言)事件上觸發(fā)。與MySQL和SQL Server類似,PostgreSQL也支持BEFORE和AFTER觸發(fā)器(在PostgreSQL中,沒有INSTEAD OF觸發(fā)器用于DML操作,但它在視圖上非常有用)。PostgreSQL觸發(fā)器使用PL/pgSQL(PostgreSQL的過程語言)編寫,這是一種功能強大的過程語言,支持復雜的邏輯、循環(huán)、條件語句、異常處理等。

在PostgreSQL中,觸發(fā)器可以引用特殊的表NEWOLD來訪問新行和舊行的數(shù)據(jù)(對于UPDATE和DELETE操作)。對于INSERT操作,只有NEW表可用;對于DELETE操作,只有OLD表可用;而對于UPDATE操作,兩者都可用。

PostgreSQL還允許觸發(fā)器函數(shù)返回特殊值NULLSKIPCONTINUE(在大多數(shù)情況下,返回NULL或省略RETURN語句等同于CONTINUE),以及RAISE EXCEPTION來拋出異常并回滾事務。

10. 觸發(fā)器的性能優(yōu)化

10.1 減少觸發(fā)器的執(zhí)行次數(shù)

觸發(fā)器的性能問題往往與其執(zhí)行頻率密切相關(guān)。如果觸發(fā)器被頻繁觸發(fā),并且執(zhí)行復雜的邏輯,那么它可能會對數(shù)據(jù)庫性能產(chǎn)生顯著影響。為了減少觸發(fā)器的執(zhí)行次數(shù),可以考慮以下策略:

  • 合并觸發(fā)器 :將多個功能相似的觸發(fā)器合并為一個,以減少觸發(fā)次數(shù)和代碼冗余。
  • 條件觸發(fā) :在觸發(fā)器中添加條件判斷,確保它只在滿足特定條件時執(zhí)行。
  • 使用數(shù)據(jù)庫日志 :對于某些審計和日志記錄需求,可以考慮使用數(shù)據(jù)庫的內(nèi)置日志功能,而不是依賴觸發(fā)器。

10.2 優(yōu)化觸發(fā)器內(nèi)部的邏輯

除了減少觸發(fā)器的執(zhí)行次數(shù)外,還可以優(yōu)化觸發(fā)器內(nèi)部的邏輯以提高性能。以下是一些優(yōu)化策略:

  • 避免在觸發(fā)器中執(zhí)行復雜的查詢 :盡可能使用簡單的查詢,并考慮使用索引來加速查詢速度。
  • 減少數(shù)據(jù)訪問 :避免在觸發(fā)器中訪問大量數(shù)據(jù),特別是那些不直接影響觸發(fā)器邏輯的數(shù)據(jù)。
  • 使用批量操作 :如果可能的話,將多個單條記錄的操作合并為批量操作,以減少數(shù)據(jù)庫交互的次數(shù)。

10.3 使用觸發(fā)器緩存

雖然大多數(shù)數(shù)據(jù)庫系統(tǒng)不提供內(nèi)置的觸發(fā)器緩存機制,但你可以通過應用程序邏輯來實現(xiàn)類似的緩存效果。例如,可以在應用程序中維護一個緩存來存儲觸發(fā)器執(zhí)行的結(jié)果,并在適當?shù)臅r候刷新緩存。然而,這種方法需要仔細設計以確保數(shù)據(jù)的一致性和完整性。

11. 觸發(fā)器的實際應用與最佳實踐

11.1 自動化業(yè)務邏輯

觸發(fā)器在自動化業(yè)務邏輯方面非常有用。例如,在訂單處理系統(tǒng)中,當訂單狀態(tài)發(fā)生變化時,觸發(fā)器可以自動更新庫存量、發(fā)送通知郵件、記錄審計日志等。通過將這些邏輯封裝在觸發(fā)器中,可以減少應用程序代碼的復雜性,并提高系統(tǒng)的可維護性。

11.2 數(shù)據(jù)完整性和約束

觸發(fā)器還可以用來維護數(shù)據(jù)庫的完整性和實施復雜的約束條件。例如,可以創(chuàng)建一個觸發(fā)器來確保在插入或更新某個表時,相關(guān)字段的值滿足特定的業(yè)務規(guī)則(如價格必須大于0、員工必須屬于存在的部門等)。這些規(guī)則可能無法直接通過數(shù)據(jù)庫的內(nèi)置約束來表達,因此觸發(fā)器成為了一個很好的補充。

11.3 審計和日志記錄

觸發(fā)器在審計和日志記錄方面也發(fā)揮著重要作用。通過在關(guān)鍵表上設置觸發(fā)器,可以自動記錄數(shù)據(jù)的變更歷史,包括變更的時間、執(zhí)行變更的用戶、變更前后的數(shù)據(jù)等。這對于后續(xù)的數(shù)據(jù)分析、問題排查和合規(guī)性審計都非常有幫助。然而,需要注意的是,過度的日志記錄可能會占用大量的磁盤空間,并影響數(shù)據(jù)庫的性能。因此,在設計審計和日志記錄策略時,需要權(quán)衡日志的詳細程度和數(shù)據(jù)庫的性能需求。

11.4 跨數(shù)據(jù)庫同步

在某些情況下,可能需要在不同的數(shù)據(jù)庫系統(tǒng)之間同步數(shù)據(jù)。雖然數(shù)據(jù)庫同步通常通過專門的同步工具或中間件來實現(xiàn),但觸發(fā)器也可以在一定程度上輔助這一過程。例如,可以在源數(shù)據(jù)庫上設置觸發(fā)器來捕獲數(shù)據(jù)變更,并將變更信息發(fā)送到目標數(shù)據(jù)庫。然而,這種方法需要仔細設計以確保數(shù)據(jù)的一致性和完整性,并且可能需要處理網(wǎng)絡延遲、事務沖突等問題。

12. 結(jié)論

觸發(fā)器是SQL中一種強大的功能,它可以在數(shù)據(jù)變更時自動執(zhí)行特定的邏輯。然而,觸發(fā)器的使用也需要謹慎,因為它們可能會對數(shù)據(jù)庫的性能產(chǎn)生顯著影響,并且可能使數(shù)據(jù)庫的依賴關(guān)系變得復雜。在設計觸發(fā)器時,需要仔細考慮其潛在的性能影響、可維護性、以及是否真正需要它們。如果可能的話,應該優(yōu)先考慮使用數(shù)據(jù)庫的內(nèi)置功能和約束來解決問題。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    751

    瀏覽量

    43984
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3734

    瀏覽量

    64169
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    1992

    瀏覽量

    60976
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    791

    瀏覽量

    26351
收藏 人收藏

    評論

    相關(guān)推薦

    何在IO內(nèi)部啟用觸發(fā)器?

    我記得在IO庫應該有一個觸發(fā)器,它直接與引腳連接。所以我的問題是如何在IO內(nèi)啟用觸發(fā)器?有沒有Xdc約束可以實現(xiàn)這個功能?非常感謝。以上來自于谷歌翻譯以下為原文I remember
    發(fā)表于 03-11 10:27

    什么是觸發(fā)器 觸發(fā)器的工作原理及作用

    觸發(fā)器。觸發(fā)器是一種特殊類型的存儲過程,不由用戶直接調(diào)用。創(chuàng)建觸發(fā)器時會對其進行定義,以便在對特定表或列作特定類型的數(shù)據(jù)修改時執(zhí)行。觸發(fā)器
    發(fā)表于 12-25 17:09

    C#教程之觸發(fā)器SQL文件

    C#教程之觸發(fā)器SQL文件,很好的C#資料,快來學習吧。
    發(fā)表于 04-20 15:27 ?5次下載

    什么是觸發(fā)器?鎖存觸發(fā)器的區(qū)別?

    觸發(fā)器的功能:  ?、佟⊥瓿杀燃s束更復雜的數(shù)據(jù)約束:觸發(fā)器可以實現(xiàn)比約束更為復雜的數(shù)據(jù)約束  ?、凇z查所做的SQL是否允許:觸發(fā)器可以檢查SQ
    發(fā)表于 08-19 12:05 ?4.2w次閱讀

    sql觸發(fā)器的優(yōu)缺點

    觸發(fā)器是一種特殊類型的存儲過程,它在指定的表的數(shù)據(jù)發(fā)生變化時自動生效。喚醒調(diào)用觸發(fā)器以響應 INSERT、UPDATE 或 DELETE 語句。觸發(fā)器可以查詢其它表,并可以包含復雜的
    發(fā)表于 12-12 17:26 ?5423次閱讀

    sql觸發(fā)器的使用及語法介紹

    觸發(fā)器:是指觸發(fā)器在數(shù)據(jù)庫中發(fā)生DML事件時將啟用。DML事件即指在表或視圖中修改數(shù)據(jù)的insert、update、delete語句。在SQL SERVER 2008,DML
    發(fā)表于 12-13 08:44 ?1.8w次閱讀
    <b class='flag-5'>sql</b><b class='flag-5'>觸發(fā)器</b>的使用及語法介紹

    jk觸發(fā)器是什么原理_jk觸發(fā)器特性表和狀態(tài)轉(zhuǎn)換圖

    JK觸發(fā)器是數(shù)字電路觸發(fā)器的一種基本電路單元。JK觸發(fā)器具有置0、置1、保持和翻轉(zhuǎn)功能,在各類集成觸發(fā)器
    發(fā)表于 12-25 17:30 ?18.7w次閱讀
    jk<b class='flag-5'>觸發(fā)器</b>是什么原理_jk<b class='flag-5'>觸發(fā)器</b>特性表和狀態(tài)轉(zhuǎn)換圖

    觸發(fā)器與存儲過程的區(qū)別

    觸發(fā)器與存儲過程非常相似,觸發(fā)器也是SQL語句集,兩者唯一的區(qū)別是觸發(fā)器不能用EXECUTE語句調(diào)用,而是在用戶執(zhí)行Transact-SQL
    發(fā)表于 01-18 09:20 ?1w次閱讀
    <b class='flag-5'>觸發(fā)器</b>與存儲過程的區(qū)別

    Oracle核心技術(shù)之觸發(fā)器

    是一種特殊的存儲過程,它在創(chuàng)建后就存儲在數(shù)據(jù)庫。觸發(fā)器的特殊性在于它是建立在某個具體的表之上的,而且是自動激發(fā)執(zhí)行的,如果用戶在這個表上執(zhí)行了某個特定事件就被激發(fā)執(zhí)行。
    發(fā)表于 03-26 13:51 ?2次下載

    創(chuàng)建與使用觸發(fā)器

    在一個表定義的語句級的觸發(fā)器,當這個表被刪除時,程序就會自動執(zhí)行觸發(fā)器里面定義的操作過程。這個就是刪除表的操作就是觸發(fā)器執(zhí)行的條件了。
    發(fā)表于 07-12 09:42 ?2145次閱讀
    <b class='flag-5'>創(chuàng)建</b>與使用<b class='flag-5'>觸發(fā)器</b>

    電平觸發(fā)器,脈沖觸發(fā)器和邊沿觸發(fā)器觸發(fā)因素是什么

    脈沖觸發(fā)器由兩個相同的電平觸發(fā)的SR觸發(fā)器組成,其中左SR觸發(fā)器成為主觸發(fā)器,右手側(cè)稱為從觸發(fā)器
    的頭像 發(fā)表于 02-11 10:56 ?9074次閱讀
    電平<b class='flag-5'>觸發(fā)器</b>,脈沖<b class='flag-5'>觸發(fā)器</b>和邊沿<b class='flag-5'>觸發(fā)器</b>的<b class='flag-5'>觸發(fā)</b>因素是什么

    觸發(fā)器怎么獲取insert的值

    時獲取插入的值時,可以使用觸發(fā)器來實現(xiàn)。下面是一種常見的實現(xiàn)方式: 創(chuàng)建觸發(fā)器: 首先,我們需要創(chuàng)建一個觸發(fā)器來捕獲插入操作,并獲取插入的值
    的頭像 發(fā)表于 11-17 15:45 ?869次閱讀

    t觸發(fā)器與d觸發(fā)器的區(qū)別和聯(lián)系

    在數(shù)字電路設計,觸發(fā)器是一種非常重要的存儲元件,用于存儲一位二進制信息。觸發(fā)器的種類很多,其中最為常見的是T觸發(fā)器(Toggle Flip-Flop)和D
    的頭像 發(fā)表于 08-11 09:37 ?1105次閱讀

    t觸發(fā)器變?yōu)閐觸發(fā)器的條件

    在數(shù)字電路設計,觸發(fā)器是一種非常重要的存儲元件,用于存儲一位二進制信息。觸發(fā)器的種類很多,其中最為常見的有JK觸發(fā)器、D觸發(fā)器和T
    的頭像 發(fā)表于 08-22 10:33 ?491次閱讀

    何在汽車CAN應用中使用負邊緣觸發(fā)觸發(fā)器節(jié)省電力

    電子發(fā)燒友網(wǎng)站提供《如何在汽車CAN應用中使用負邊緣觸發(fā)觸發(fā)器節(jié)省電力.pdf》資料免費下載
    發(fā)表于 09-13 10:06 ?0次下載
    如<b class='flag-5'>何在</b>汽車CAN應用中使用負邊緣<b class='flag-5'>觸發(fā)</b><b class='flag-5'>觸發(fā)器</b>節(jié)省電力