MySQL´¥·¢Æ÷½â¾ö·½°¸Àú³Ì
×î½ü£¬ÏîÄ¿ÖÐÓõ½mysql£¬ÓÉÓÚÊý¾ÝÁ¿·Ç³£´ó£¬Ã¿ÌìµÄÊý¾ÝÁ¿ÔÚ°ÙÍò¼¶£¬¿¼Âǵ½mysqlÊý¾Ý¿â´¦ÀíÐÔÄÜÒÔ¼°Êý¾ÝÊôÐÔ£¬¾ö¶¨±£´æ×ã¹»¶àµÄ²éѯÊý¾Ý¼´¿É£¬¾àµ±Ç°Ê±¼ä×î¾ÃÔ¶µÄÊý¾ÝÖ±½Óɾ³ý£¬ÎÞÐè½øÐб¸·Ý¡£
Í·ÄÔÖÐð³öµÄµÚÒ»¸öÏë·¨¾ÍÊÇ£¬ÄÜ·ñÀûÓÃmysqlÖеĴ¥·¢Æ÷£¬¼ì²éÊý¾Ý±í´óС£¬Èç¹û³¬¹ýÔ¤É賤¶È£¬Ôòɾ³ý²¿·ÖÊý¾Ý¡£
CREATE TRIGGER tg AFTER INSERT ON traffic_info
FOR EACH ROW BEGIN
...
DELETE from traffic_info WHERE time <= "..."
...
END;
Ö´Ðкó³öÏÖÈçÏ´íÎó£º
ERROR 1442 (HY000): Can't update table 'traffic_info' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
ÔÀ´£¬Ä¿Ç°MySQL´¥·¢Æ÷»¹²»Ö§³Öɾ³ý´¥·¢Æ÷ËùÔڵıíµÄÊý¾Ý£¬ok£¬ÎÒÔʼµÄÏë·¨ÊÇÿ¸öÊý¾Ý±í×Ô¼º¹ÜÀí±í´óС£¬ÏÖÔÚ¿´À´ÊÇÐв»Í¨ÁË¡£
µÚ¶þ¸öÏë·¨ÊǸɴàÓô洢¹ý³ÌµÃÁË£¬ÊÖ¶¯µ÷Óô洢¹ý³ÌÀ´¸üÐÂËùÓбíµÄ´óС£¬¿¼Âǵ½Êý¾Ý±íºÜ¶à£¬ÏëÐÒé¸ö½ÓÊÜÊý¾Ý±íÃûΪ²ÎÊýµÄ´æ´¢¹ý³Ì£º
CREATE PROCEDURE P(IN table_name VARCHAR(50)£¬ IN max_count INT)
READS SQL DATA
BEGIN
...
SELECT COUNT(1) from table_name
...
END;
ÕâÖÖ×ö·¨Ðв»Í¨£¬mysql»á½«“table_name”×Ö·û´®×÷Ϊ±íÃû£¬ËÑË÷ºó·¢ÏÖ£¬ÐèÒªÓõ½mysqlÐÂÌØÐÔprepare£¬²»¹ýÐèҪעÒâµÄÊÇ£¬¾ÍËãÊÇÀûÓÃprepare£¬»¹ÊÇÎÞ·¨Ö±½Ó´«ÈëÊý¾Ý±íÃû£¬ÐèÒªÀûÓÃCONCATÊÂÏÈÁ¬½Ó²éѯ×Ö·û´®£º
CREATE PROCEDURE P(IN table_name VARCHAR(50), IN max_count INT)
READS SQL DATA
BEGIN
...
SET @query_str = CONCAT("SELECT COUNT(1) from ", table_name);
PREPARE stmt from @query_str
EXECUTE stmt;
...
END;
×ÜËãÊÇËÍÁËÒ»¿ÚÆø£¬¿ÉÊÇÓÖ·¢ÏÖ£¬ÎÒÐèÒªÔÚ´æ´¢¹ý³ÌÖж¯Ì¬»ñÈ¡PREPARE²éѯµÄ·µ»Ø½á¹û£¬µ«ÊÇ£¬Ä¿Ç°mysql»¹ÎÞ·¨×öµ½ÕâÒ»µã£¬ÕæÊÇÈÃÈËʧÍû£¬¿´À´Ö»ÄÜÁíÃÙËü;ÁË……
ʱ¼ä²Ö´Ù£¬½ñÊÇΪ¼Ç
Ïà¹ØÎĵµ£º
°²×°»·¾³£ºVMware Workstation 5.5.0 build-18463
Linux°æ±¾£ºRed Hat Enterprise Linux AS (2.6.9-42.EL)
Èí¼þ°æ±¾£ºMySQL5 - mysql-5.0.37.tar.gz
¡¡¡¡¡¡¡¡¡¡Apache2 - httpd-2.2.4.tar.gz
¡¡¡¡¡¡¡¡¡¡PHP5 - php-5.2.1.tar.gz
¡¡¡¡¡¡¡¡¡¡(½«ÒÔÉÏÎļþ±£´æÖÁ/home/tmpĿ¼)
[MySQL]
# cd /home/tmp (½øÈëѹËõ°ü ......
1 MYSQLÖеÄ×Ö·û¼¯¸ÅÄî
MysqlµÄ×Ö·û¼¯ÀïÓÐÁ½¸ö¸ÅÄһ¸öÊÇ"Character set£¨×Ö·û¼¯£©"£¬ÁíÒ»¸öÊÇ"Collations"¡£
1.1 Collations
Collations·³ÉÖÐÎÄÊÇ"УÑé"£¬ÔÚÍøÒ³¿ª·¢µÄ¹ý³ÌÖУ¬Õâ¸ö´Ê»ã£¬Ö»ÔÚMysqlÀïʹÓã¬Ö÷Òª×÷ÓÃÊÇÖ¸µ¼Mysql¶Ô×Ö·ûµÄ±È½Ï£¬±ÈÈ磬 ASCII×Ö·û¼¯ÀCol ......
1.Ê×ÏÈ£¬ÉèÖÃÊý¾Ý¿âÖ§³ÖÖÐÎÄgb2312/gbk¡£
¾ßÌå·½·¨£º
´ò¿ªmySQLÎļþ¼Ð£¬ÐÞ¸Ämy.iniÅäÖÃÎļþ¡£
[client]
port=3306
default-character-set=gb2312
ÒÔ¼°
[mysqld]쵀
default-character-set=gb2312
Ð޸쬱£´æ£¬ÖØÆô¡£ÈôÉèΪSystem·þÎñ£¬¿ÉÒÔÔÚ¿ØÖÆÃæ°å-¹ÜÀí¹¤¾ß-·þÎñÖÐÕÒµ½mySQL·þÎñ£¬ÖØÆô¡£
2.±£Ö¤Web ......
ÔÚÈÕ³£µÄ¹¤×÷ÖУ¬±£»¤Êý¾ÝÃâÊÜδÊÚȨÓû§µÄÇÖ·¸ÊÇϵͳ¹ÜÀíÔ±ÌØ±ð¹ØÐĵÄÎÊÌâ¡£Èç¹ûÄãĿǰÓõÄÊÇMySQL£¬¾Í¿ÉÒÔʹÓÃһЩ·½±ãµÄ¹¦ÄÜÀ´±£»¤ÏµÍ³£¬À´´ó´ó¼õÉÙ»úÃÜÊý¾Ý±»Î´ÊÚȨÓû§·ÃÎʵķçÏÕ¡£
ÆóÒµ×îÓмÛÖµµÄ×ʲúͨ³£ÊÇÆäÊý¾Ý¿âÖеĿͻ§»ò²úÆ·ÐÅÏ¢¡£Òò´Ë£¬ÔÚÕâЩÆóÒµÖУ¬Êý¾Ý¿â¹ÜÀíµÄÒ»¸öÖØÒª²¿·Ö¾ÍÊDZ£»¤ÕâЩÊý¾ÝÃâÊÜÍⲿ¹¥»÷£ ......