MySQL用户定义的函数生成主键

时间:2012-05-23 13:12:00

标签: mysql database user-defined-functions

我认为在PostgreSQL中你可以使用一个函数在表中生成主键,而不是仅仅使用auto_increment。类似于:

CREATE TABLE `blah` (
    `id` bigint(20) unsigned NOT NULL my_generator_function(),
    etc.

my_generator_function()会返回一个bigint。

这可能与MySQL有关,还是我必须自己从应用程序代码那里做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以创建触发器 -

CREATE TRIGGER trigger1
  BEFORE INSERT
  ON table1
  FOR EACH ROW
BEGIN
  IF NEW.id = 0 THEN -- generate new ID if zero is set
    SET NEW.id = ...; -- write your code to generate new ID
  END IF;
END