Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql alter table外键!_Mysql_Ruby On Rails - Fatal编程技术网

mysql alter table外键!

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

(我使用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 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`;