php - Phinx 迁移 - 整数列的显式长度

标签 php mysql database-migration phinx

你能告诉我是否可以通过 Phinx 迁移 addColumn() 方法设置整数列的显式长度吗?

文档使用 MysqlAdapter::INT_REGULAR 的限制选项,如 ['limit' => MysqlAdapter::INT_SMALL, 'signed' => false] 但它会自动设置列的长度,例如int(10)

但是如果我需要 int(11) 例如外键列,我该怎么办?

谢谢。

最佳答案

据我了解limit option MysqlAdapter::INT_REGULAR 类似于 Phinx 中的预定义类型。但您也可以使用自己的 limit 变量。

这是一个例子:

// using Phinx 0.5.4
public function change() {
  $table = $this->table('papers');
  $table->addColumn('user_id', 'integer', ['limit' => 2])
        ->addColumn('book_id', 'integer') // by default will be int(11)
        ->addColumn('bank_id', 'integer', ['limit' => 32])
        ->create();

MySQL 描述结果:

+---------+---------+------+-----+---------+----------------+
| Field   | Type    | Null | Key | Default | Extra          |
+---------+---------+------+-----+---------+----------------+
| id      | int(11) | NO   | PRI | NULL    | auto_increment |
| user_id | int(2)  | NO   |     | NULL    |                |
| book_id | int(11) | NO   |     | NULL    |                |
| bank_id | int(32) | NO   |     | NULL    |                |
+---------+---------+------+-----+---------+----------------+

要获取更多信息,请查看 source code getSqlType()source code getPhinxType() 函数。

关于php - Phinx 迁移 - 整数列的显式长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37279810/

相关文章:

php - 将所有参数作为数组传递 PHP mysqli 查询?

mysql - 需要帮助提高 SQL 性能(子查询与连接)

ios - Core Data轻量级迁移: change relationship from To-One to To-Many

mysql - 从 MariaDB 迁移到 MySQL

仅当 php xpath 有一个类为 "A"的子级时,才选择类为 "a1"的 div

php - PHP 有 struct 数据类型吗?

php - 语法错误,Laravel 更新后意外 ')'

PHP Mysql select语句仅显示当天记录

mysql - R 库 RMySQL 无法启动

Laravel迁移: dropping a specific table