From: Ayumi Date: 2007-01-10T18:53:23+09:00 Subject: [ruby-list:43102] シーケンスの作成・使用方法について こんにちは。あゆみと申します。 緊張していますが思い切って質問させていただきます。 migrate時、自動生成してくれるid以外でシーケンスを作成お よび使用する方法を教えてください。 migrateにどう書くのかもお教えいただけると嬉しいです。 またそのテーブルとは別のテーブルなのですが、ID(text)カラ ムを追加し、 そのIDを「OID-****」(****はシーケンス)として登録する方法 を教えてください。 目的: 既存DBのID(int)を救出し、そのIDをprimary_keyとして使用し たい。 今後追加されるデータについてはスタート値を1000としてauto_increment したい。 現在のmigrateファイル(例): class CreateAbc < ActiveRecord::Migration def self.up create_table :abc do |t| t.column :created_on, :date #作成日時 t.column :updated_on, :date #最終更新日時 t.column :del_flg, :boolean,:default => false, :null => false # 削除フラグ t.column :abc_id, :text, :null => false #ID t.column :abc_name, :text, :null => false #名 end add_index :abc, :abc_id end def self.down drop_table :abc end end ※この例ではabc_idを「OID-****」(****はシーケンス)として 登録したいです。 class CreateAbc < ActiveRecord::Migration def self.up create_table :abc do |t| t.column :created_on, :date #作成日時 t.column :updated_on, :date #最終更新日時 t.column :del_flg, :boolean,:default => false, :null => false # 削除フラグ t.column :abc_id, :integer,:null => false #ID t.column :abc_name, :text, :null => false #名 end add_index :abc, :abc_id end def self.down drop_table :abc end end ※この例ではabc_idをスタート値を1000にしてauto_increment したいです。 [環境] OS:WindowsXP DB:sqlite3 Ruby:ver1.8.5 Rails:1.1.6 質問が分かりずらいかもしれません。ごめんなさい。 どなたかアドバイスをいただけると本当に助かります。 どうぞよろしくお願いします。m(__)m あゆみ