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

Posted

技术标签:

【中文标题】MySQL用户自定义函数生成主键【英文标题】:MySQL user-defined functions to generate primary key 【发布时间】:2012-05-23 13:11:59 【问题描述】:

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

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

my_generator_function() 将返回一个 bigint。

这可以通过 mysql 实现吗?还是我必须自己通过应用程序代码来实现?

【问题讨论】:

【参考方案1】:

你可以创建一个触发器 -

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

【讨论】:

以上是关于MySQL用户自定义函数生成主键的主要内容,如果未能解决你的问题,请参考以下文章

Django 主键自增

mysql的设置主键自增

如何设置主键自增从1000开始每次自增1

SqlServer里设置主键自增长有几种方式?

SqlServer里设置主键自增长有几种方式?

mysql 主键自增 怎么处理