【问题标题】:How to start primary key from 0 while importing导入时如何从0开始主键
【发布时间】:2015-08-21 11:51:37
【问题描述】:

我尝试将csv 文件导入Mysql。 ID id 从 0 开始。导入时显示duplicate entry。有什么解决办法吗?

我的迁移文件是

class CreateActors < ActiveRecord::Migration
   def change
    create_table :actors  do |t|
      t.string :title 
      t.float :rating
      t.string :place
      t.string :address
      t.string :special
      t.string :amount
      t.string :phone
    end
   end
end

id默认作为主键

我的 csv 文件显示为

id   title  rating   place   address   amount   phone
0     .       .       .       .         .        .    
1     .       .       .       .         .        .

导入时出现此错误

 ERROR 1062: 1062: Duplicate entry '1' for key 'PRIMARY'

我该如何解决这个问题?

【问题讨论】:

  • 如果文件有重复值,需要导入到临时表。删除重复项,然后添加到主表
  • 它是主键,从0开始。它显示重复条目
  • 您能告诉我们主键是如何定义的吗?表上已经有条目了吗?您的主键示例?
  • id是主键,从0开始到30结束。它由31个条目组成。
  • 表格是空的?

标签: mysql ruby-on-rails database primary-key


【解决方案1】:

主键通常由数据库系统设置,为AUTO_INCREMENT。

我在这里看到了几种解决方案:

  • 如果您需要从文件中保留该 ID,只需在表中添加另一个字段并将该值放在那里,同时让数据库设置 AUTO_INCREMENT 值。
  • 忘记 AUTO_INCREMENT 并有一个 File_ID 和一个 Row_ID 一起组成一个 PRIMARY 或 UNIQUE 键。根据保存已导入文件记录的附加表设置File_ID。

【讨论】:

  • 主键可以放0值吗?
  • @users4393829 AFAIK 是的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-15
  • 1970-01-01
  • 2022-01-28
  • 1970-01-01
  • 1970-01-01
  • 2019-02-07
  • 2020-05-11
相关资源
最近更新 更多