mysql alter table外键!
(我使用workbench)我有带id、用户id、文本的表mysql alter table外键!,mysql,ruby-on-rails,Mysql,Ruby On Rails,(我使用workbench)我有带id、用户id、文本的表问题,还有带字段id、名称的表用户 我需要关联这两个表 我写了以下内容: ALTER TABLE `mydb_development`.`questions` ADD CONSTRAINT fk_QueUsers_1 FOREIGN KEY (`user_id`) REFERENCES `mydb_development`.`users`(`id`); 但我得到: ERROR 1046: No database selected SQL
问题
,还有带字段id、名称的表用户
我需要关联这两个表
我写了以下内容:
ALTER TABLE `mydb_development`.`questions`
ADD CONSTRAINT fk_QueUsers_1
FOREIGN KEY (`user_id`)
REFERENCES `mydb_development`.`users`(`id`);
但我得到:
ERROR 1046: No database selected
SQL Statement:
ALTER TABLE `questions`
ADD FOREIGN KEY (`user_id`) REFERENCES `users`(`id`)
ERROR: Error when running failback script. Details follow.
ERROR 1046: No database selected
SQL Statement:
CREATE TABLE `questions` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) unsigned NOT NULL,
`text` text NOT NULL,
`security_token` varchar(40) NOT NULL,
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=373 DEFAULT CHARSET=utf8
ERROR 1046: No database selected
SQL Statement:
ALTER TABLE `questions`
ADD FOREIGN KEY (`user_id`) REFERENCES `users`(`id`)
ERROR: Error when running failback script. Details follow.
.....................
编辑:
我试着做:
USE `mydb_development`;
ALTER TABLE `mydb_development`.`questions`
ADD CONSTRAINT `fk_QueUsers_1`
FOREIGN KEY (`user_id`)
REFERENCES `mydb_development`.`users`(`id`);
我得到一个错误:
Error Code: 1005
Can't create table 'survey_development.#sql-4ad_45' (errno: 150)
不明白:S
编辑:
我的用户表:
DROP TABLE IF EXISTS `mydb_development`.`users`;
CREATE TABLE `mydb_development`.`users` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;
输入:
将约束名称“user\u id”更改为类似“fk\u user\u id”的其他名称。尝试选择数据库,看看是否有任何区别
USE `mydb_development`;
首先,您希望消除错误1046:No database selected
错误
为此,请确保您:
- 用
使用mydb\u开发选择一个数据库代码>
- 修改
ALTER/CREATE
语句以包含数据库。例如,ALTER TABLE mydb\u开发。问题
这似乎是mysql的错误:
阅读
尝试为“用户id”编制索引,然后再次运行脚本。谢谢您的回复,我编辑了,但什么都没有,我更新了我的帖子!谢谢回复,我编辑了,但没什么,我更新了我的帖子!谢谢回复,我编辑了,但没什么,我更新了我的帖子!这看起来像是另一个外键错误。查看其他人对同一问题的解决方案:为
调查开发创建后
再次尝试创建表并添加约束添加索引请向我们展示为用户创建表
USE `mydb_development`;