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

Sự cố khi đặt khóa chính tùy chỉnh trong quá trình di chuyển Rails 4

Hãy xem câu trả lời này. Cố gắng execute "ALTER TABLE shareholders ADD PRIMARY KEY (uid);" mà không chỉ định tham số khóa chính trong khối create_table.

Tôi khuyên bạn nên viết quá trình di chuyển của mình như thế này (để bạn có thể khôi phục bình thường):

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

CẬP NHẬT: Có một cách tự nhiên (tìm thấy ở đây), nhưng chỉ với kiểu 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự khác biệt giữa loại dữ liệu DECIMAL và NUMERIC trong PSQL

  2. Liệt kê các bảng trong một lược đồ PostgreSQL

  3. Truy vấn Postgres phức tạp

  4. Các tùy chọn đa thai cho PostgreSQL

  5. Sự cố khi chèn bằng psycopg