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

Windows系统XAMPP环境MySQL创建外键表报错[1064],求语法修正

修正MySQL创建外键表的语法错误

Hey,我一眼就看到你这条CREATE TABLE语句的问题了——外键约束的定义位置写错了,这也是新手实操关联表时常犯的小错误~

你原来把外键声明放在了表结构的括号外面,但MySQL(包括你用的MariaDB)要求外键约束必须和字段定义一起放在括号内部。另外还有个小细节:tinyint(9)里的数字是显示宽度,不影响字段的实际存储范围,如果你只是用来记录登录尝试次数,直接写tinyint就足够啦。

修正后的完整SQL语句如下,你可以直接在phpMyAdmin里执行:

CREATE TABLE loginattempts (
    id int(16) NOT NULL,
    loginattempts tinyint NOT NULL,
    attemptdate DATETIME NOT NULL,
    FOREIGN KEY (id) REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = INNODB;

额外给你提两个实用小建议:

  • 确保users表的id字段是主键或者带有唯一索引,否则外键约束会创建失败,这是外键生效的基本要求
  • 建议给loginattempts表的id加上主键约束(比如改成id int(16) NOT NULL PRIMARY KEY),这样能保证表数据的唯一性,也更符合关联表的设计规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:22:38