如何在CODEIGNITER中使用当前更新时间迁移时创建时间戳字段

如何在CODEIGNITER中使用当前更新时间迁移时创建时间戳字段,codeigniter,database-migration,Codeigniter,Database Migration,下面是我的密码,请告诉我哪里错了 public function up(){ $this->dbforge->add_field(array( 'id'=> array( 'type' => 'int', 'constraint' => 11, 'auto_increment

下面是我的密码,请告诉我哪里错了

public function up(){

        $this->dbforge->add_field(array(
                'id'=> array(
                    'type'          => 'int',
                    'constraint'    => 11,
                    'auto_increment'=> TRUE,
                ),
                'ip_address'=> array(
                    'type'      => 'VARCHAR',
                    'constraint'=> '40',
                ),
                'login'=> array(
                    'type'      => 'VARCHAR',
                    'constraint'=> '50',
                ),
                'time'=> array(
                    'type'      => 'timestamp',
                    'Default' => 'CURRENT_TIMESTAMP',
                    'ON UPDATE CURRENT_TIMESTAMP' => TRUE,
                ),
        ));
        $this->dbforge->add_key('id',TRUE);
        $this->dbforge->create_table('login_attempts');
    echo "table created";       
    }
运行迁移时将生成此错误

错误号:

1067年

“时间”的默认值无效

创建表登录尝试(id int(11)非空自动增量, ip_地址VARCHAR(40)不为空,登录VARCHAR(50)不为空,时间 时间戳非空默认值“当前时间戳”,约束 pk\u登录\u尝试主键(id))默认字符集=utf8 COLLATE=utf8\u常规\u ci

文件名:D:/xampp/htdocs/tank_auth/system/database/DB_driver.php

电话号码:691


查看
time
列的默认值。在MySQL中,当前时间戳不能在单括号中。由于CodeIgniter出于安全原因会自动转义默认值,因此您也可以传递整个字符串,如:

'time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',

将其他列保留为已存在的数组。仅按上图所示更改时间列。

查看时间列的默认值。在MySQL中,当前时间戳不能在单括号中。由于CodeIgniter出于安全原因会自动转义默认值,因此您也可以传递整个字符串,如:

'time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
将其他列保留为已存在的数组。仅如上所示更改时间列