基础的表设置与字段类型
<?php
public function up()
{
// create the table
$table = $this->table('student',['id' => false, 'engine'=>'InnoDB', 'charset'=>'utf8','primary_key'=>['uid']])->setComment('学生表');
$table->addColumn(Column::unsignedInteger('uid')->setNull(false)->setIdentity('uid')->setComment('用户id'))
->addColumn(Column::string('mobile', 20)->setNull(false)->setDefault('')->setComment('昵称'))
->addColumn(Column::tinyInteger('sex')->setNull(false)->setDefault(0)->setComment('性别:0保密 1男 2女'))
->addColumn(Column::char('sex_cn', 10)->setNull(false)->setDefault('保密')->setComment('性别'))
->addColumn(Column::integer('city_id')->setNull(false)->setDefault(0)->setComment('城市id'))
->addColumn(Column::smallInteger('grade_id')->setNull(false)->setDefault(0)->setComment('年级id'))
->addColumn(Column::tinyInteger('subject_id')->setNull(false)->setDefault(0)->setComment('科目id'))
->addColumn(Column::smallInteger('class')->setNull(false)->setDefault(0)->setComment('班级id'))
->addColumn(Column::decimal('balance', 10, 2)->setNull(false)->setDefault(0)->setComment('余额'))
->addColumn(Column::dateTime('created_at')->setNull(false)->setComment('创建时间'))
->addIndex(['mobile', 'delete_time'], ['unique' => true, 'name'=>'unique_mobile_time'])
->addIndex(['grade_id', 'subject_id'], ['name'=>'grade_subject_id'])
->addIndex(['city_id'], ['name'=>'index_city_id'])
->create();
}
附录
表的方法
方法 名 | 描述 |
---|---|
setId(string $id) | 设置主键字段名 |
setPrimaryKey(string $key) | 设置主键 |
setEngine(string $engine) | 设置存储引擎,有:InnoDB,MyISAM |
setComment(string $comment) | 设置表注释 |
addTimestamps(string createAtName,stringcreateAtName,stringupdateAtName) | 给表加上创建时间和编辑时间两个字段,默认字段名是:create_time,update_time |
addColumn(columnName,columnName,type, $options) | 给表增加一个字段 |
changeColumn(columnName,columnName,newType, $options) | 改变表的某一个字段的属性 |
create() | 创建表 |
save() | 保存表 |
rename($newTableName) | 重命名表名 |
hasTable($tableName) | exists() | 判断表是否存在 |
setIndexes(array $indexs) | 批量设置索引 |
drop() | 删除当前表 |
setForeignKeys(array $foreignKeys) | 设置外键 |
removeColumn($columnName) | 删除字段 |
renameColumn(oldName,oldName,newName) | 字段重命名 |
insert(array $data) | 插入数据 |
列类型
类型 |
---|
biginteger |
binary |
boolean |
date |
datetime |
decimal |
float |
integer |
string |
text |
time |
timestamp |
uuid |
可选参数
参数 | 说明 |
---|---|
limit | 长度限制,整数 |
length | 同 limit ,整数 |
default | 默认值,mixed |
null | 是否可空,bool |
after | 在哪个字段后 |
comment | 注释 |
下面是针对 decimal 类型:
参数 | 说明 |
---|---|
precision | 长度,整数 |
scale | 小数位长度,整数 |
signed | 是否无符号,bool |
下面是针对 enum 和 set 类型:
参数 | 说明 |
---|---|
values | 默认值 |