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用户自定义函数生成主键的主要内容,如果未能解决你的问题,请参考以下文章