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

导入SQL文件触发MySQL #1075错误,求问题排查与解决

MySQL表创建错误#1075排查与修复

错误原因

报错#1075 - There can be only one auto column and it must be defined as a key的核心原因是:MySQL要求带有AUTO_INCREMENT属性的列必须在表创建时就被指定为键(主键或唯一键),你的代码中先创建表(此时自增列id未关联任何键),之后再通过ALTER TABLE添加主键,这违反了MySQL的规则。

修复方案

将主键定义直接整合到CREATE TABLE语句中,同时调整表的创建顺序确保外键引用的表先存在。修复后的完整SQL如下:

-- 先创建被sp_players引用的sp_prints表
CREATE TABLE `sp_prints`(
    `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `title` VARCHAR(255) NOT NULL,
    `player` INT NOT NULL,
    `momemt` INT NOT NULL,
    `season` INT NOT NULL,
    `compeitition` INT NOT NULL
);

-- 创建sp_players表,直接指定主键
CREATE TABLE `sp_players`(
    `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `title` VARCHAR(255) NOT NULL,
    `image` VARCHAR(255) NOT NULL,
    `club` INT NOT NULL,
    `trophies` INT NOT NULL,
    `birthdate` DATE NOT NULL,
    `prints` INT NOT NULL
);

-- 添加外键约束
ALTER TABLE
    `sp_players` ADD CONSTRAINT `sp_players_prints_foreign` FOREIGN KEY(`prints`) REFERENCES `sp_prints`(`id`);
ALTER TABLE
    `sp_prints` ADD CONSTRAINT `sp_prints_player_foreign` FOREIGN KEY(`player`) REFERENCES `sp_players`(`id`);

额外说明

  • 调整表创建顺序:先创建sp_prints,确保sp_players的外键prints能找到有效的引用目标。
  • 将PRIMARY KEY直接写在自增列定义后,让自增列在表创建时就成为主键,满足MySQL对自增列的约束要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:55:23