sql >> Databáze >  >> RDS >> PostgreSQL

Problémy s nastavením vlastního primárního klíče při migraci na Rails 4

Podívejte se na tuto odpověď. Zkuste execute "ALTER TABLE shareholders ADD PRIMARY KEY (uid);" bez zadání parametru primárního klíče v bloku create_table.

Navrhuji zapsat migraci takto (abyste se mohli normálně vrátit):

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: Existuje přirozený způsob (najdete zde), ale pouze s typem int4:

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. Najděte porušení cizího klíče v SQLite

  2. Váš dokonalý průvodce SQL Join:INNER JOIN – Část 1

  3. Vygenerujte náhodné číslo v rozsahu 1-10

  4. T-SQL Úterý #33:Trikové záběry:Schéma Switch-A-Roo