You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Firebird表中创建默认约束以实现自动生成UUID值

解决方案

Firebird 3.0 不支持直接在列默认约束中调用GEN_UUID()函数,但可以通过 BEFORE INSERT 触发器实现插入时自动分配UUID的需求,具体实现步骤如下:

  • 首先创建包含UUID列的表
CREATE TABLE your_table (
    -- 定义16字节OCTETS字符集的UUID列,设为主键
    uuid_col CHAR(16) CHARACTER SET OCTETS NOT NULL PRIMARY KEY,
    -- 其他业务列按需添加
    content VARCHAR(255)
);
  • 第二步创建插入前触发器实现自动生成UUID
CREATE TRIGGER trg_your_table_gen_uuid FOR your_table
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
    -- 仅当插入操作未主动指定uuid_col的值时,才自动生成UUID
    IF (NEW.uuid_col IS NULL) THEN
        NEW.uuid_col = GEN_UUID();
END

补充说明

如果你的环境可以升级到Firebird 4.0及以上版本,无需触发器即可直接定义列默认值,语法如下:

CREATE TABLE your_table (
    uuid_col CHAR(16) CHARACTER SET OCTETS DEFAULT GEN_UUID() NOT NULL PRIMARY KEY,
    content VARCHAR(255)
);

内容的提问来源于stack exchange,提问作者Andrew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:12:00