view 基表字段类型不同导致 insert 报错 sql-151

CREATE TABLE TABLE1(    DATE    CHAR(8) NOT NULL CONSTRAINT CHK_TBL1 CHECK ( DATE='20160101') DEFAULT '',    PRICE   DECIMAL(15,4) NOT NULL DEFAULT 0);CREATE VIEW TEST AS SELECT DATE,PRICE FROM TABLE1UNION ALL ...显示全部

CREATE TABLE TABLE1

(

    DATE    CHAR(8) NOT NULL CONSTRAINT CHK_TBL1 CHECK ( DATE<'20160101') DEFAULT '',

    PRICE   DECIMAL(19,4) NOT NULL DEFAULT 0

);

CREATE TABLE TABLE2

(

    DATE    CHAR(8) NOT NULL CONSTRAINT CHK_TBL1 CHECK ( DATE>='20160101') DEFAULT '',

    PRICE   DECIMAL(15,4) NOT NULL DEFAULT 0

);

CREATE VIEW TEST AS

SELECT DATE,PRICE FROM TABLE1

UNION ALL SELECT DATE,PRICE FROM TABLE2;

INSERT INTO TEST (DATE,PRICE)

VALUES('20150101',3.14);

----------

SQL0151N  不能更新列 "PRICE"。  SQLSTATE=42808


有没有在不改基表字段类型的情况下,使字段兼容?

或者能明确DB2不允许这样做,谢谢

收起
参与5

返回weiruan85的回答

weiruan85weiruan85数据库管理员ibm

select的时候cast转换下

政府机关 · 2016-04-28

回答者

weiruan85
数据库管理员ibm

weiruan85 最近回答过的问题

回答状态

  • 发布时间:2016-04-28
  • 关注会员:2 人
  • 回答浏览:636
  • X社区推广