标签:des style blog color io 使用 ar 数据 div
跟 column相关的常见的方法有:
column_exists? (table_name, column_name, type = nil, options = {}) add_column (table_name, column_name, type, options = {}) remove_column (table_name, column_name, type=nil, options = {}) remove_columns (table_name, *column_name) change_column (table_name, column_name, type, options = {}) change_column_default (table_name, column_name, default) change_column_null (table_name, column_name, null, default = nil) rename_column (table_name, column_name, new_column_name)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
column_exists? 方法用来判断某个表里面的某个字段是否存在,语法如下:
column_exists? (table_name, column_name, type = nil, options = {})
# 一般只需要指定数据表和字段名字就行: column_exists? :users, :name # 也可以指定 类型,默认值等来判断符合条件的字段是否存在,如下: column_exists?(:users, :name, :string) column_exists?(:users, :name, :string, limit: 100) column_exists?(:users, :name, :string, default: ‘default‘) column_exists?(:users, :name, :string, null: false) column_exists?(:users, :salary, :decimal, precision: 8, scale: 2)
add_column 方法用来为某个表添加字段,
相对于上面的 column_exists? 方法,add_column 方法必须指定字段的 type.
用法和 column_exists? 极其类似,直接把上面的例子方法名改动(除了没有指定类型那个)
如下,就变成添加字段了
# 语法 add_column (table_name, column_name, type, options={}) # 例子 add_column(:users, :name, :string) add_column(:users, :name, :string, limit: 100) add_column(:users, :name, :string, default: ‘default‘) add_column(:users, :name, :string, null: false) add_column(:users, :salary, :decimal, precision: 8, scale: 2)
remove_column 方法用来删除某个表格里面的某个字段
所需要的参数和 column_exists? 完全一样,不过最常见的指定表名和字段名字。当然你可以像column_exists? 那样指定满足某些条件。
remove_column (table_name, column_name, type = nil, options = {})
# 语法 remove_column (table_name, column_name, type = nil, options = {}) # 例子 remove_column(:users, :name)
如果一下子要删除好几个字段,remove_columns 可以帮到我们。指定表名字和多个字段名字就行,使用如下:
# 语法 remove_column (table_name, *column_name) # 例子 remove_column(:users, :address, :phone)
当要改变某个字段的结构,使用 change_column 系列,可以达到我们的目的。
change_column 的语法和 add_column 的语法一样,必须指定 type.
# 语法 change_column (table_name, column_name, type, options={}) # 例子 change_column (:users, :name, :string, limit: 50) change_column (:users, :description, :text)
而change_column_default 和 change_column_null 则是用来做一些小的改动。
# 语法 change_column_defalut (table_name, column_name, default) change_column_null (table_name, column_name, null, default = nil) # 两个方法的例子如下: # 改变字段的默认值: change_column_default(:users, :name, "Tom") change_column_default(:users, :age, 18) change_column_default(:users, :email, nil) # 改变字段是否允许为空: change_column_null(:users, :nickname, false) change_column_null(:users, :nickname, true)
值得注意的是 change_column_null 的第四个参数,这个参数是可选的,你可以用这个参数来吧已经存在的 Null 数据替换为某个值, 当你需要加某些约束的时候可以使用,但是必须注意,在你改完之后加进去的数据是非法的,也就是说第四个参数并不是设置字段的默认值。还是不用这个为好 :)
重命名字段:
给定所需参数既可
# 语法 rename_column (table_name, column_name, new_column_name) # 例子 rename_column(:users, :description, :intro)
ActiveRecord::ConnectionAdapters::SchemaStatements | 有关 Column 的常见方法笔记
标签:des style blog color io 使用 ar 数据 div
原文地址:http://www.cnblogs.com/laoquans/p/3984653.html