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

AWS Amplify Gen2预注册触发器中MySQL主键自增问题求助

解决Cognito预注册触发器中UserProfile表自增主键问题

1. 确认MySQL数据库表结构

首先确保user_profiles表的id字段已设置为自增主键,若未设置,执行以下SQL修改:

ALTER TABLE user_profiles MODIFY COLUMN id INT AUTO_INCREMENT PRIMARY KEY;

2. 修改Amplify数据Schema

将生成的Schema中id字段的定义从a.integer().required()替换为a.autoincrement().required(),标记该字段为自增类型:

schema({
    "user_profiles": a.model({
        id: a.autoincrement().required(), // 改为自增配置
        email: a.string(),
        profile_owner: a.string(),
        user_type: a.string(),
    }).identifier([
        "id"
    ])
});

3. 更新Amplify客户端

重新生成客户端代码并部署,使Schema变更生效:

npx ampx generate client
npx ampx deploy

4. 调整Cognito触发器代码

移除create方法中的id参数,由数据库自动生成自增值,同时确保返回event以完成Cognito流程:

export const handler: PreSignUpTriggerHandler = async (event) => {
    
    await client.models.UserProfile.create({
        email: event.request.userAttributes.email,
        user_type: event.request.userAttributes['custom:user_type'],
        profile_owner: `${event.userName}`,
    });

    return event; // 必须返回event,否则Cognito注册流程会中断
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 01:35:57