mysql - 将外键列添加到现有表
问题描述
我只是在表中添加一列并将该新列设为外键。
我已经尝试从声明中删除反引号。
这是声明:
ALTER TABLE `user_list_v4`
ADD `role_id` int(11) NOT NULL COMMENT `role.id`
KEY `role_id` (`role_id`),
CONSTRAINT `developer_standup_timezone_ibfk_1` FOREIGN KEY
(`role_id`) REFERENCES `role_list_v4` (`id`)
这是表格:// 列名已被转换为字母,原因...:
CREATE TABLE `user_list_v4` (
`a` int(11) NOT NULL,
`b` varchar(50) DEFAULT NULL,
`c` varchar(50) DEFAULT NULL,
`d` varchar(50) NOT NULL DEFAULT '',
`e` varchar(255) NOT NULL DEFAULT '',
`f` varchar(5) NOT NULL DEFAULT '',
`g` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`h` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
当我运行该语句时,我希望它说:查询正常,0 行受影响(0.00 秒)
但我得到这个错误:
ERROR 1064 (42000): You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right
syntax to use near '`role.id`
KEY `role_id` (`role_id`),
CONSTRAINT `developer_standup_timezone_' at line 2
我确定它是一个简单的语法错误,但我没有找到它
解决方案
您必须添加列并添加外键:
ALTER TABLE `user_list_v4`
ADD `role_id` INT NOT NULL COMMENT 'role.id',
ADD KEY `role_id` (`role_id`),
ADD CONSTRAINT `developer_standup_timezone_ibfk_1`
FOREIGN KEY (`role_id`) REFERENCES `role_list_v4` (`id`);
推荐阅读
- javascript - 如何合并对象数组和另一个对象数组
- eclipse - 如何修复Tomcat问题不适用于Eclipse?
- android - Android SQLite:这是否可以在查询的选择字段中放置 2 个参数?
- pycharm - 如何运行python脚本
- python - Gensim word2vec 下采样样本=0
- swift - 如何在 RealityKit 中旋转实体而不复制它?
- c# - 将路由模板转换为正则表达式
- django - 获取每个订单行的可退款项目总数
- java - 如何在自定义 JTextField 中绘制光标?
- flutter - 如何显示来自 CloudFirestore 子集合的数据