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

MySQL创建带外键的videodata表时出现语法错误求助

外键创建失败的解决方法

问题根源

你遇到的errno:150外键约束错误,核心原因是关联字段的类型不匹配:

  • userdata表的email主键字段为VARCHAR(255)
  • 你创建videodata表时,email字段定义为VARCHAR(50)

MySQL对外键约束的要求非常严格:关联的两个字段必须类型、长度、字符集/排序规则完全一致,否则无法成功创建约束。

修正后的建表语句

将videodata表的email字段长度调整为255,与userdata表保持一致,同时保证外键语法正确:

CREATE TABLE videodata (
    id INT PRIMARY KEY AUTO_INCREMENT,
    email VARCHAR(255) NOT NULL,
    video_url VARCHAR(255) NOT NULL,
    video_title VARCHAR(255) NOT NULL,
    FOREIGN KEY (email) REFERENCES userdata(email)
    -- 可选:根据业务需求添加级联操作,比如删除用户时同步删除其视频数据
    ON DELETE CASCADE
    ON UPDATE CASCADE
);

额外注意事项

  • 确认userdata表已创建完成,且email确实是该表的主键
  • 确保两张表使用相同的字符集和排序规则(比如统一使用utf8mb4)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 15:31:12