PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Thêm khóa ngoại vào mô hình đường ray

Câu trả lời hiện được chấp nhận về vấn đề này không thực sự chính xác vì nó không thêm khóa ngoại cơ sở dữ liệu. Nó chỉ là thêm các cột số nguyên.

Trong Rails 4.2.x , cách tiếp cận hiện tại là:

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

Tạo di chuyển:

rails generate migration migration_name

Đối với các cột hiện có , trong quá trình di chuyển, hãy thêm các khóa ngoại như sau:

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

Đối với Rails 4.x hoặc nếu bạn đang thêm cột mới và muốn nó là một khóa ngoại, bạn có thể làm điều này, trong đó bạn có thể cũng muốn chỉ định chỉ mục là true, nhưng đó không phải là một phần của yêu cầu đối với khóa ngoại:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để đặt khóa chính tự động tăng dần trong PostgreSQL?

  2. Heroku Postgres:psql:FATAL:không có mục nhập pg_hba.conf cho máy chủ

  3. Cách giới hạn quyền truy cập vào cơ sở dữ liệu trong PostgreSQL

  4. trong postgres, bạn có thể đặt định dạng mặc định cho dấu thời gian, theo phiên hoặc toàn cầu không?

  5. Hiển thị hình ảnh trong Ireports bằng PostgreSql