文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
5.7 索引操作
索引操作
使用 addIndex()
方法可以指定索引
<?php
use Phinx\Migration\AbstractMigration;
class MyNewMigration extends AbstractMigration
{
/**
* Migrate Up.
*/
public function up()
{
$table = $this->table('users');
$table->addColumn('city', 'string')
->addIndex(array('city'))
->save();
}
/**
* Migrate Down.
*/
public function down()
{
}
}
Phinx 默认创建的是普通索引, 我们可以通过添加 unique
参数来指定唯一值。也可以使用 name
参数来制定索引名。
<?php
use Phinx\Migration\AbstractMigration;
class MyNewMigration extends AbstractMigration
{
/**
* Migrate Up.
*/
public function up()
{
$table = $this->table('users');
$table->addColumn('email', 'string')
->addIndex(array('email'), array('unique' => true, 'name' => 'idx_users_email'))
->save();
}
/**
* Migrate Down.
*/
public function down()
{
}
}
MySQL adapter 支持 fulltext
索引。 如果你使用版本低于 5.6 则必须确保数据表是 MyISAM
引擎
<?php
use Phinx\Migration\AbstractMigration;
class MyNewMigration extends AbstractMigration
{
public function change()
{
$table = $this->table('users', ['engine' => 'MyISAM']);
$table->addColumn('email', 'string')
->addIndex('email', ['type' => 'fulltext'])
->create();
}
}
调用 removeIndex()
方法可以删除索引。必须一条条删除
<?php
use Phinx\Migration\AbstractMigration;
class MyNewMigration extends AbstractMigration
{
/**
* Migrate Up.
*/
public function up()
{
$table = $this->table('users');
$table->removeIndex(array('email'));
// alternatively, you can delete an index by its name, ie:
$table->removeIndexByName('idx_users_email');
}
/**
* Migrate Down.
*/
public function down()
{
}
}
当调用 removeIndex() 方法时不需要调用 save() 方法。 索引会立即删除
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论