º¯ÊýµÄ¹¦ÄÜ£º¶ÔÈÕÆÚʱ¼ä½øÐиñʽ»¯¡£ 10£®Í¨¹ý±¾ÕÂ֪ʶµÄ½²½â£¬ÄúÊÇÈçºÎÀí½âÖÐÎÄÈ«ÎļìË÷µÄ£¿Äú¾õµÃʵÏÖÖÐÎÄÈ«ÎļìË÷µÄºËÐļ¼ÊõÊÇʲô£¿
´ð£ºÇë²Î¿¼µÚÎåÕ¿κóϰÌâ´ð°¸¡£
µÚÆßÕ´ð°¸
1£®ÊÓͼÓë»ù±íÓÐÊ²Ã´Çø±ðºÍÁªÏµ£¿ÊÓͼÓëselectÓï¾äÓÐʲô¹ØÏµ£¿ ´ð£ºÊÓͼÓë»ù±íÓÐÊ²Ã´Çø±ðºÍÁªÏµ£º
Êý¾Ý¿â±í³ÆÎª»ù±¾±í»òÕß»ù±í£¬ÊÓͼ³ÆÎªÐé±í¡£»ù±íµÄÊý¾Ý·¢Éú±ä»¯Ê±£¬Ðé±íµÄÊý¾ÝÒ²»áËæÖ®±ä»¯¡£
´¥·¢Æ÷»ùÓÚ±í£¨ÑϸñµØËµÊÇ»ùÓÚ±íµÄ¼Ç¼£©£¬ÕâÀïµÄ±íÊÇ»ù±í£¬²»ÊÇÁÙʱ±í£¨temporaryÀàÐÍµÄ±í£©£¬Ò²²»ÊÇÊÓͼ¡£
ͨ¹ýÊÓͼËäÈ»¿ÉÒÔ¸üлù±íµÄÊý¾Ý£¬µ«±¾Êé²¢²»½¨ÒéÕâÑù×ö¡£ÔÒòÔÚÓÚ£¬Í¨¹ýÊÓͼ¸üлù±íÊý¾Ý£¬²¢²»»á´¥·¢´¥·¢Æ÷µÄÔËÐС£
ÊÓͼÓëselectÓï¾äÓÐʲô¹ØÏµ£º
ÊÓͼÖб£´æµÄ¾ÍÊÇÒ»ÌõselectÓï¾ä¡£¶ÔÓÚ¾³£Ê¹ÓõĽṹ¸´ÔÓµÄselectÓï¾ä£¬½¨Ò齫Æä·âװΪÊÓͼ¡£
2£®Ê²Ã´ÊǼì²éÊÓͼ£¿Ê²Ã´ÊÇlocal¼ì²éÊÓͼÓëcascaded¼ì²éÊÓͼ£¿
´ð£º´´½¨ÊÓͼʱ£¬Ã»ÓÐʹÓÃwith check option×Ó¾äʱ£¬¼´with_check_optionµÄֵΪ0£¬±íʾÊÓͼΪÆÕͨÊÓͼ£»Ê¹ÓÃwith check option×Ó¾ä»òÕßwith cascaded check option×Ó¾äʱ£¬±íʾ¸ÃÊÓͼΪcascaded¼ì²éÊÓͼ£»Ê¹ÓÃwith local check option×Ӿ䣬±íʾ¸ÃÊÓͼΪlocal¼ì²éÊÓͼ¡£
¼ì²éÊÓͼ£ºÍ¨¹ý¼ì²éÊÓͼ¸üлù±íÊý¾Ýʱ£¬¼ì²éÊÓͼ¶Ô¸üÐÂÓï¾ä½øÐÐÁËÏÈÐмì²é£¬Ö»ÓÐÂú×ã¼ì²éÌõ¼þµÄ¸üÐÂÓï¾ä²ÅÄܳɹ¦Ö´ÐС£Èç¹û¸üÐÂÓï¾ä²»Âú×ã¼ì²éÊÓͼ¶¨ÒåµÄ¼ì²éÌõ¼þ£¬Ôò¼ì²éÊÓͼÅ׳öÒì³££¬¸üÐÂʧ°Ü¡£
local¼ì²éÊÓͼÓëcascaded¼ì²éÊÓͼµÄÇø±ðÁªÏµ£¬Çë²Î¿´7.1.7Õ½ÚÄÚÈÝ
3£®ÇëÓô¥·¢Æ÷ʵÏÖ¼ì²éÔ¼Êø£ºÒ»¸öѧÉúijÃſγ̵ijɼ¨scoreÒªÇóÔÚ0µ½100Ö®¼äȡֵ¡£
´ð£º±¾ÌâÐèҪΪchoose±í´´½¨ÁËÒ»¸öbefore¡¢insert´¥·¢Æ÷ºÍÒ»¸öbefore¡¢update´¥·¢Æ÷¡£ÓÉÓÚ±¾ÕÂ7.2.3Õ½ÚÖУ¬ÒѾΪchoose±í´´½¨ÁËÒ»¸öbefore¡¢insert´¥·¢Æ÷ºÍÒ»¸öbefore¡¢update´¥·¢Æ÷¡£¶øÍ¬Ò»¸ö±í²»ÄÜ´´½¨Á½¸öÏàͬ´¥·¢Ê±¼ä¡¢´¥·¢Ê¼þµÄ´¥·¢³ÌÐò¡£
Òò´Ë£¬ÎªÁËʵÏÖ±¾Ì⹦ÄÜ£¬ÐèÒªÊ×ÏÈɾ³ý7.2.3Õ½ÚÖеÄÁ½¸ö´¥·¢Æ÷¡£ drop trigger choose_insert_before_trigger; drop trigger choose_delete_before_trigger; È»ºóÔÙΪchoose±í´´½¨Ò»¸öafter¡¢insert´¥·¢Æ÷ºÍÒ»¸öafter¡¢update´¥·¢Æ÷£¬×Ô¶¯Î¬»¤¿Î³ÌavailableµÄ×Ö¶ÎÖµ¡£
delimiter $$ create trigger choose_insert_after_trigger after insert on choose for each row begin update course set available=available-1 where course_no=new.course_no; end; $$ delimiter ;
delimiter $$ create trigger choose_delete_after_trigger after delete on choose for each row begin update course set available=available+1 where course_no=old.course_no; end; $$ delimiter ;
×îºó£¬ÔÙΪchoose±í´´½¨Ò»¸öbefore¡¢insert´¥·¢Æ÷ºÍÒ»¸öbefore¡¢update´¥·¢Æ÷ʵÏÖ¼ì²éÔ¼Êø£ºÒ»¸öѧÉúijÃſγ̵ijɼ¨scoreÒªÇóÔÚ0µ½100Ö®¼äȡֵ¡£
delimiter $$ create trigger choose_insert_before_trigger before insert on choose for each row begin if(new.score>=0 && new.score<=100) then set new.score = new.score; else insert into mytable values(0); end if; end; $$ delimiter ; delimiter $$ create trigger choose_update_before_trigger before update on choose for each row begin if(new.score>=0 && new.score<=100) then set new.score = new.score; else insert into mytable values(0); end if; end; $$ delimiter ;
4£®MySQL´¥·¢Æ÷ÖеĴ¥·¢Ê¼þÓм¸ÖÖ£¿´¥·¢Æ÷µÄ´¥·¢Ê±¼äÓм¸ÖÖ£¿ ´ð£ºÇë²Î¿´7.2.1Õ½ÚÄÚÈÝ¡£
5£®´´½¨´¥·¢Æ÷ʱ£¬ÓÐÄÄЩעÒâÊÂÏ
´ð£º±¾ÌâÐÞ¸ÄΪ£ºÊ¹Óô¥·¢Æ÷ʱ£¬ÓÐÄÄЩעÒâÊÂÏ Çë²Î¿´7.2.7Õ½ÚÄÚÈÝ¡£
6£®Ê¹Óô¥·¢Æ÷¿ÉÒÔʵÏÖÄÄЩÊý¾ÝµÄ×Ô¶¯Î¬»¤£¿
´ð£ºÊ¹Óô¥·¢Æ÷¿ÉÒÔʵÏÖ¼ì²éÔ¼Êø
ʹÓô¥·¢Æ÷¿ÉÒÔ×Ô¶¯Î¬»¤ÈßÓàÊý¾Ý£¬ÀýÈç¿Î³ÌavailableµÄ×Ö¶ÎÖµ¡£ ʹÓô¥·¢Æ÷¿ÉÒÔÄ£ÄâÍâ¼ü¼¶ÁªÑ¡Ïî¡£
7£®ÄúÊÇÈçºÎÀí½âÁÙʱ±íµÄ£¿ÁÙʱ±íÓë»ù±íÓÐʲô¹ØÏµ£¿ ´ð£ºÇë²Î¿´7.3.1Õ½ÚÄÚÈÝ¡£Çë²Î¿´7.3.4Õ½ÚÄÚÈÝ
8£®ÄúÊÇÈçºÎÀí½âÊÓͼ¡¢×Ó²éѯ¡¢ÁÙʱ±í¡¢ÅÉÉú±íÖ®¼äµÄ¹ØÏµµÄ£¿ ´ð£ºÇë²Î¿´7.5Õ½ÚÄÚÈÝ¡£
µÚ°ËÕ´ð°¸
1£®±àд¡°Ñ¡¿Îϵͳ¡±µÄ´æ´¢¹ý³Ì£¬²¢¶ÔÆä½øÐе÷ÓᢲâÊÔ¡£ ´ð£ºÇë²Î¿´±¾Õ´úÂë¡£
2£®²é¿´´æ´¢¹ý³Ì¶¨ÒåµÄ·½·¨ÓÐÄÄЩ£¿ ´ð£ºÇë²Î¿´8.1.4Õ½ÚÄÚÈÝ¡£
3£®ÇëÂÞÁд洢¹ý³ÌÓ뺯ÊýµÄÇø±ðÓëÁªÏµ¡£ ´ð£ºÇë²Î¿´8.1.6Õ½ÚÄÚÈÝ¡£
4£®Êý¾Ý¿â¿ª·¢ÈËÔ±¶¨Òå´íÎó´¦Àí»úÖÆÊ±£¬ÐèÒªÌṩ´íÎó´¦ÀíÀàÐÍ¡¢´íÎó´¥·¢Ìõ¼þÒÔ¼°´íÎó´¦Àí³ÌÐòµÈÐÅÏ¢£¬´íÎó´¦ÀíÀàÐÍÓÐÄÄЩ£¿Ê²Ã´ÊÇ´íÎó´¥·¢Ìõ¼þÒÔ¼°´íÎó´¦Àí³ÌÐò£¿
´ð£º´íÎó´¦ÀíÀàÐ͵ÄȡֵҪôÊÇcontinue£¬ÒªÃ´ÊÇexit¡£µ±´íÎó´¦ÀíÀàÐÍÊÇcontinueʱ£¬±íʾ´íÎó·¢Éúºó£¬MySQLÁ¢¼´Ö´ÐÐ×Ô¶¨Òå´íÎó´¦Àí³ÌÐò£¬È»ºóºöÂԸôíÎó¼ÌÐøÖ´ÐÐÆäËûMySQLÓï¾ä¡£µ±´íÎó´¦ÀíÀàÐÍÊÇexitʱ£¬±íʾ´íÎó·¢Éúºó£¬MySQLÁ¢¼´Ö´ÐÐ×Ô¶¨Òå´íÎó´¦Àí³ÌÐò£¬È»ºóÁ¢¿ÌÍ£Ö¹ÆäËûMySQLÓï¾äµÄÖ´ÐС£
´íÎó´¥·¢Ìõ¼þÒÔ¼°´íÎó´¦Àí³ÌÐò£¬Çë²Î¿´8.2.1Õ½ÚÄÚÈÝ¡£ 5£®ÓαêµÄʹÓò½ÖèÊÇʲô£¿Ã¿Ò»¸ö²½ÖèÍê³ÉʲôÈÎÎñ£¿ ´ð£ºÇë²Î¿´8.3.1Õ½ÚÄÚÈÝ¡£
6£®¾ÙÀý˵Ã÷£¬ÈçºÎ±éÀúÓαêÖеġ°½á¹û¼¯¡±¡£ ´ð£ºÇë²Î¿´8.3.2Õ½ÚÄÚÈÝ¡£
7£®Ê¹ÓÃÔ¤´¦ÀíSQLÓï¾äÓÐÄÄЩעÒâÊÂÏԤ´¦ÀíSQLÓï¾äÓ뾲̬SQLÓï¾äÓÐÊ²Ã´Çø±ðºÍÁªÏµ£¿
´ð£º×¢ÒâÊÂÏîÇë²Î¿´8.4.1Õ½ÚÄÚÈÝ£»Ô¤´¦ÀíSQLÓï¾äÓ뾲̬SQLÓï¾äÓÐÊ²Ã´Çø±ðºÍÁªÏµÇë²Î¿´8.4.4Õ½ÚÄÚÈÝ¡£
Ïà¹ØÍÆ¼ö£º