MySQL服务器版本:5.1.73 源码分发版。
我无法创建一个函数,即使在删除它之后仍然存在。
首先删除该函数:
mysql> drop function if exists `xapps_f20160817`;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show warnings;
+-------+------+-----------------------------------------+
| Level | Code | Message |
+-------+------+-----------------------------------------+
| Note | 1305 | FUNCTION xapps_f20160817 does not exist |
+-------+------+-----------------------------------------+
1 row in set (0.00 sec)
但是当我再次创建它时,它仍然存在。
mysql> create function `xapps_f20160817`(
-> `_time` varchar(30),
-> `_rpid` varchar(10),
-> `_mvsz` varchar(10),
-> `_rvsz` varchar(10),
-> `_ncpu` varchar(10),
-> `_rcpu` varchar(10),
-> `_appn` varchar(64)
-> ) RETURNS BIGINT READS SQL DATA
-> BEGIN
-> insert into `20160817`(time, rpid, mvsz, rvsz, ncpu, rcpu, appn)
-> values(_time, _rpid, _mvsz, _rvsz, _ncpu, _rcpu, _appn);
-> RETURN LAST_INSERT_ID();
-> END
ERROR 1304 (42000): FUNCTION xapps_f20160817 already exists
尝试使用:
mysql> select xapps_f20160817('100','100','100','100','100','100','100');$$
ERROR 1305 (42000): FUNCTION xapps_db.xapps_f20160817 does not exist
尝试从函数列表中查找:
mysql> show function status where name='xapps_f20160817';$$
Empty set (0.00 sec)
尝试删除它,但它并不存在:
mysql> drop function if exists `xapps_f20160817`;$$
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show warnings;$$
+-------+------+-----------------------------------------+
| Level | Code | Message |
+-------+------+-----------------------------------------+
| Note | 1305 | FUNCTION xapps_f20160817 does not exist |
+-------+------+-----------------------------------------+
1 row in set (0.01 sec)
这是MySQL的一个bug吗?如何正确地移除这个功能?