如何創建CHECK約束來檢查Sequel中的可能值範圍。一個Ruby ORM。如何檢查續集中的約束條件
在輸出日誌中看到的所有嘗試似乎都會生成CHECK (1 = 0)
。
這裏是我試圖用續集的DSL模型表:
create table memberships(
id integer primary key autoincrement
, group_id integer references groups(id) on delete cascade
, user_id integer references users(id) on delete cascade
, role char check (role in ('u','a','o')) default 'u'
, unique(group_id, user_id, role)
);
和這裏的續集模式生成代碼:
db.create_table(:memberships){
primary_key :id
foreign_key :user_id, :users
foreign_key :group_id, :groups
char :role, default: 'u'
check{role=='u' or role=='a'} #<-----this line generates CHECK (1 = 0)
unique [:user_id, :group_id, :role]
}
啊,試過一個了。同樣的結果。 – rebnoob 2012-04-17 18:59:39
完美!隊友的歡呼聲! – rebnoob 2012-04-17 19:50:06