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

SQL主键非空错误修复求助——GTA V FiveM服务器数据库表创建失败

SQL主键非空错误修复求助——GTA V FiveM服务器数据库表创建失败

嘿,我一看你这SQL就知道问题出在哪了——这是MySQL主键约束的经典坑!

你提供的三个表创建语句里,都犯了同一个错误:把plate/stash设为**主键(PRIMARY KEY)**的同时,又给它们加了DEFAULT NULL属性。但MySQL的主键要求必须满足「非空 + 唯一」,允许为空的字段根本没法当主键,这就是你报错的根源。另外你的trunkitems表语句最后被截断了,我也帮你补全了。

我直接给你修复好的完整SQL代码,拿去就能用:

CREATE TABLE IF NOT EXISTS `gloveboxitems`
(
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `plate` varchar(255) NOT NULL, -- 去掉了DEFAULT NULL,强制非空
    `items` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
    PRIMARY KEY (`plate`),
    KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `stashitems` 
(
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `stash` varchar(255) NOT NULL, -- 去掉了DEFAULT NULL,强制非空
    `items` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
    PRIMARY KEY (`stash`),
    KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `trunkitems` 
(
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `plate` varchar(255) NOT NULL, -- 去掉了DEFAULT NULL,强制非空
    `items` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
    PRIMARY KEY (`plate`),
    KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; -- 补全了截断的部分

另外给你提个可选优化方案:如果你的FiveM脚本还没固化依赖plate作为主键的逻辑,其实可以把自增的id设为主键,把plate/stash设为唯一索引,这样后续做数据关联、修改会更灵活,示例如下:

CREATE TABLE IF NOT EXISTS `gloveboxitems`
(
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `plate` varchar(255) NOT NULL,
    `items` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
    PRIMARY KEY (`id`),
    UNIQUE KEY `plate` (`plate`) -- 用唯一索引保证plate不重复
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

这个方案更符合常规数据库设计,但如果你的脚本已经写死了用plate查数据,那还是用第一个修复版本更稳妥,避免改脚本。

备注:内容来源于stack exchange,提问作者Michael S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 12:48:14