【问题标题】:ORA-02267: column type incompatible with referenced column typeORA-02267: 列类型与引用的列类型不兼容
【发布时间】:2017-05-24 08:57:15
【问题描述】:

这是我在 SQL 中的编码:

CREATE TABLE TICKET (
  TICKET_NO NUMBER,
  VENUE_NO VARCHAR(3),
  TICKET_DATE   DATE,
  TICKET_PRICE NUMBER(8,2),
  PRIMARY KEY (TICKET_NO), 
    CONSTRAINT TICKET_VENUE_NO_FK
  FOREIGN KEY (VENUE_NO) REFERENCES VENUE
);

这是错误声明:

Error starting at line 1 in command:
CREATE TABLE TICKET (
TICKET_NO   NUMBER,
VENUE_NO VARCHAR(3),
TICKET_DATE DATE,
TICKET_PRICE NUMBER(8,2),
PRIMARY KEY (TICKET_NO), 
 CONSTRAINT TICKET_VENUE_NO_FK
FOREIGN KEY (VENUE_NO) REFERENCES VENUE)
Error at Command Line:8 Column:13
Error report:
SQL Error: ORA-02267: column type incompatible with referenced column type
02267. 00000 -  "column type incompatible with referenced column type"
*Cause:    The datatype of the referencing column is incompatible with the

我的编码有什么问题?

【问题讨论】:

  • 错误信息说明了一切。表 VENUE 的主键与 VARCHAR(3) 不兼容。
  • 能否请您发布 CREATE TABLE VENUE 的 DDL

标签: sql oracle


【解决方案1】:

检查 VENUE 表中的 VENUE_NO 字段是否与此表中的类型相同,即 VARCHAR(3)。

【讨论】:

    【解决方案2】:

    您需要确保TICKET.VENUE_NO 列和VENUE.VENUE_NO 列之间的数据类型匹配。

    【讨论】:

      【解决方案3】:

      常见于FOREIGN KEY (attr1) REFERENCES attr2。您需要检查您引用的数据类型,它应该与上表保持相同。比如varcharchar

      【讨论】:

        【解决方案4】:

        这可能是由于数据类型不对应。确保venue_no 在两个表中具有相同的类型。

        【讨论】:

        • 你不必尖叫
        • 对不起?。大写锁定已打开.. 直到我点击发送才注意到?。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-06-20
        • 2022-01-11
        • 1970-01-01
        • 1970-01-01
        • 2022-01-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多