您的位置:首页 > 数据库 > MySQL

MySQL自定义函数

2016-10-22 11:04 204 查看

首先,做一个热身。引进一个系统函数LAST_INSERT_ID();

这个函数的功能就是放回上一次插入的数据的id

做个示范

插入数据 vdfb

mysql> INSERT test VALUES(NULL,'基辅迪纳摩');

调用LAST_INSERT_ID()

mysql> SELECT LAST_INSERT_ID();

+------------------+

| LAST_INSERT_ID() |

+------------------+

| 3 |

+------------------+

当前表中的全部数据

mysql> SELECT * FROM test;

+----+------------+

| id | username |

+----+------------+

| 1 | 巴西体育 |

| 2 | 阿根廷独立 |

| 3 | 基辅迪纳摩 |

+----+------------+

注意如果,同时间插入两条数据,返回的是第一条数据的id

插入数据

mysql> INSERT test(username) VALUES('巴西桑托斯'),('荷兰阿贾克斯 ');

调用函数

mysql> SELECT LAST_INSERT_ID();

+------------------+

| LAST_INSERT_ID() |

+------------------+

| 4 |

+------------------+

查询当前表中的全部数据

mysql> SELECT * FROM test;

+----+---------------+

| id | username |

+----+---------------+

| 1 | 巴西体育 |

| 2 | 阿根廷独立 |

| 3 | 基辅迪纳摩 |

| 4 | 巴西桑托斯 |

| 5 | 荷兰阿贾克斯 |

+----+---------------+

例1

创建自定义函数,通过这个函数我可以一次插入一条记录,并返回所说插入记录的id号

mysql> DELIMITER //

mysql> CREATE FUNCTION adduser(username VARCHAR(20))

-> RETURNS INT UNSIGNED

-> BEGIN

-> INSERT test(username) VALUES(username);

-> RETURN LAST_INSERT_ID();

-> END

-> //

Query OK, 0 rows affected (0.01 sec)

在创建结束之用DELIMITER ;修改一下分隔符

mysql> DELIMITER ;

调用自定义函数

mysql> SELECT adduser('AC Milan');

+---------------------+

| adduser('AC Milan') |

+---------------------+

| 8 |

+---------------------+

查看当前表中记录

mysql> SELECT * FROM test;

+----+---------------+

| id | username |

+----+---------------+

| 1 | 巴西体育 |

| 2 | 阿根廷独立 |

| 3 | 基辅迪纳摩 |

| 4 | 巴西桑托斯 |

| 5 | 荷兰阿贾克斯 |

| 8 | AC Milan |

+----+---------------+
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: