gpt4 book ai didi

MySQL-error 150解决方法

转载 作者:搜寻专家 更新时间:2023-10-30 22:18:43 25 4
gpt4 key购买 nike

我有以下 MySQL 脚本:

CREATE TABLE user_roles (
id INT AUTO_INCREMENT,
PRIMARY KEY(id),
name TEXT NOT NULL,
access INT NOT NULL DEFAULT '0'
)
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
name TEXT NOT NULL,
email TEXT NOT NULL,
password TEXT NOT NULL,
date_created DATETIME,
roles VARCHAR(50) NOT NULL,
active INT DEFAULT '1',
FOREIGN KEY(roles) REFERENCES user_roles(id)
)

它一直给我错误 150。也许数据库没有规划好?任何帮助将不胜感激。

最佳答案

users.rolesuser_roles.id 列的数据类型必须相同,FOREIGN KEY 约束才能正常工作。而是尝试将 users.roles 设为 INT:

CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
name TEXT NOT NULL,
email TEXT NOT NULL,
password TEXT NOT NULL,
date_created DATETIME,
-- Change this...
roles INT NOT NULL,
active INT DEFAULT '1',
FOREIGN KEY(roles) REFERENCES user_roles(id)
)

更新 根据评论,users.roles 应该是像“admin, moderator, etc.”这样的文本。为了正确的数据规范化,user_roles.id 应该被键入并获取角色的文本名称,JOIN 它们在查询中。

关于MySQL-error 150解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7422930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com