更改列类型和数据转换

时间:2015-09-01 10:14:16

标签: sql postgresql

有一个scheduled_duration列,以分钟为单位存储时间,类型为整数。您需要将类型更改为间隔并转换现有数据。为此我写了这个SQL代码:

ALTER TABLE shift ALTER COLUMN planned_duration TYPE INTERVAL USING planned_duration * INTERVAL '60 sec';

但遗憾的是它不起作用。我收到这个错误:

ERROR:  operator does not exist: interval >= integer
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.

正确更改列类型和转换数据需要执行哪些操作?感谢。

1 个答案:

答案 0 :(得分:1)

问题在于约束:

ALTER TABLE shift DROP CONSTRAINT shift_planned_duration_check;

解决了在更改列之前删除此约束的问题:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">