sql >> Database teknologi >  >> RDS >> PostgreSQL

Problemer med at indstille en tilpasset primær nøgle i en Rails 4-migrering

Tag et kig på dette svar. Prøv at execute "ALTER TABLE shareholders ADD PRIMARY KEY (uid);" uden at angive den primære_nøgle-parameter i create_table-blokken.

Jeg foreslår, at du skriver din migrering sådan her (så du kan rulle tilbage normalt):

class CreateShareholders < ActiveRecord::Migration
  def up
    create_table :shareholders, id: false do |t|
      t.integer :uid, limit: 8
      t.string :name
      t.integer :shares

      t.timestamps
    end
    execute "ALTER TABLE shareholders ADD PRIMARY KEY (uid);"
  end

  def down
    drop_table :shareholders
  end
end

UPD: Der er en naturlig måde (findes her), men kun med int4 type:

class CreateShareholders < ActiveRecord::Migration
  def change
    create_table :shareholders, id: false do |t|
      t.primary_key :uid
      t.string :name
      t.integer :shares

      t.timestamps
    end    
  end
end


  1. Hvordan kører man den samme forespørgsel på alle databaser på en instans?

  2. betinget deltagelse i mysql

  3. Deltag vs. underforespørgsel

  4. Fejl ved udskrivning af REFCURSOR-variabel som OUT-parameter i procedure i Oracle 11g