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

Tilføjelse af fremmednøgle til en skinnemodel

Det aktuelt accepterede svar på dette er ikke rigtig nøjagtigt, da det ikke tilføjer en databasefremmednøgle. Det er bare at tilføje heltalskolonner.

I Rails 4.2.x , den nuværende tilgang er:

http://guides.rubyonrails.org/active_record_migrations.html#foreign-keys

Opret en migrering:

rails generate migration migration_name

For eksisterende kolonner , i migreringen tilføj fremmednøglerne sådan her:

class MigrationName < ActiveRecord::Migration
  def change
    add_foreign_key :business_hours, :businesses
    add_foreign_key :businesses, :users
  end
end

Til Rails 4.x eller hvis du tilføjer en ny kolonne og vil have det til at være en fremmednøgle kan du gøre dette, hvor du sikkert også vil angive indekset som sandt, men det er ikke en del af kravet til fremmednøglen:

http://edgeguides.rubyonrails.org/active_record_migrations.html#creating-a-migration

class MigrationName < ActiveRecord::Migration
  def change
    add_reference :business_hours, :business, index: true, foreign_key: true
    add_reference :businesses, :user, index: true, foreign_key: true
  end
end


  1. Tabelfiltrering i IRI Workbench

  2. Sådan eksporteres forespørgselsresultater til en .txt-fil, når du bruger SQLcl (Oracle)

  3. MySQL - hvor mange rækker kan jeg indsætte i en enkelt INSERT-sætning?

  4. Indsamlingsmetode:FØRSTE OG NÆSTE funktioner i Oracle-databasen