如何在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',
将其他列保留为已存在的数组。仅如上所示更改时间列