【发布时间】:2017-09-18 20:32:12
【问题描述】:
我正在尝试将列类型从 character varying (10) 更改为日期。
我可以像这样单独运行它:
ALTER TABLE "tbl_name" ALTER "col_name" TYPE timestamp USING (col_name ::timestamp);
但是在将其放入 upgrade.php 脚本后,它对我产生了影响,并且需要 USING 子句,我似乎无法开始工作。或者,如果有办法……
这是我的 upgrade.php 脚本:
$table = new xmldb_table('tbl_name');
$field = new xmldb_field('col_name', XMLDB_TYPE_DATETIME);
if ($dbman->field_exists($table, $field)) {
$dbman->change_field_notnull($table, $field);
}
登录 Moodle 管理员并运行更新时,我收到以下错误:
ERROR: column "col_name" cannot be cast automatically to type timestamp without time zone HINT: You might need to specify "USING col_name::timestamp without time zone".
有什么想法吗?
谢谢!
【问题讨论】:
标签: php database postgresql moodle