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