MySQL表觸發(fā)器主要用于在插入、更新或刪除操作之前或之后自動(dòng)執(zhí)行一些操作
- 數(shù)值類型:TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, FLOAT, DOUBLE, DECIMAL。
- 日期和時(shí)間類型:DATE, TIME, DATETIME, TIMESTAMP, YEAR。
- 字符串類型:CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET。
- 二進(jìn)制類型:BINARY, VARBINARY, TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB。
- 空間類型:GEOMETRY, POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION。
- JSON類型:JSON。
需要注意的是,觸發(fā)器中不能使用以下數(shù)據(jù)類型:
- 不支持的數(shù)據(jù)類型:BIT, SERIAL(這是一個(gè)別名,實(shí)際上是BIGINT UNSIGNED AUTO_INCREMENT)。
- 臨時(shí)表:TEMPORARY TABLE。
- 分區(qū)表:PARTITIONED TABLE。
此外,觸發(fā)器還有一些其他限制,例如:
- 每個(gè)表最多只能有6個(gè)觸發(fā)器(INSERT、UPDATE、DELETE的BEFORE和AFTER觸發(fā)器各3個(gè))。
- 觸發(fā)器不能用于臨時(shí)表或分區(qū)表。
- 觸發(fā)器不能用于系統(tǒng)表(如mysql、information_schema等數(shù)據(jù)庫(kù)中的表)。
- 觸發(fā)器不能用于視圖。
總之,在創(chuàng)建MySQL表觸發(fā)器時(shí),需要確保所使用的數(shù)據(jù)類型和操作都符合觸發(fā)器的限制。