Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 当ID没有按应有的方式自动递增时_Mysql_Ruby On Rails 3_Passenger - Fatal编程技术网

Mysql 当ID没有按应有的方式自动递增时

Mysql 当ID没有按应有的方式自动递增时,mysql,ruby-on-rails-3,passenger,Mysql,Ruby On Rails 3,Passenger,我试图将2个表中的现有数据导入rails应用程序,但遇到了一个与ids相关的奇怪问题。所有创建表的迁移似乎都遵循约定(没有具体提到id字段,只是让rails来解决)。基本上,我为表A中的每个对象发送一个ajax对象,它属于表B中的一个对象。我在对象A中有一个名为object_B_name的字段,还有一个mutator方法,它根据object_B_name执行find_或_create_by_name,返回要在对象A中使用的对象B的id 在我的本地服务器上,表B中的对象具有连续的ID。但在运行相同

我试图将2个表中的现有数据导入rails应用程序,但遇到了一个与ids相关的奇怪问题。所有创建表的迁移似乎都遵循约定(没有具体提到id字段,只是让rails来解决)。基本上,我为表A中的每个对象发送一个ajax对象,它属于表B中的一个对象。我在对象A中有一个名为object_B_name的字段,还有一个mutator方法,它根据object_B_name执行find_或_create_by_name,返回要在对象A中使用的对象B的id

在我的本地服务器上,表B中的对象具有连续的ID。但在运行相同代码的远程服务器上,这些对象都具有id 0。这是什么原因造成的


编辑/更新:在检查远程服务器中的模式时,发现id字段上没有自动递增或索引(如@Sammitch所述),因此我猜项目中的其他人出于某种原因手动创建了该表。添加这些约束解决了问题。

我敢猜测,远程服务器上的
id
列既没有唯一的键/索引,也没有定义
AUTO_INCREMENT