首页 > 解决方案 > 使用 insert - 语句接收到无穷无尽的错误

问题描述

我试图向客户插入一些值,然后我得到 ora-00904 错误。在我研究了这个问题之后,我没有使用“”,而是使用了“”。但现在我收到了 ora-00984。

INSERT INTO customer (c_id, name, age)
VALUES (1, 'Carl', 45)
OUTPUT:
SQL-ERROR: ORA-00904: "name": invalid ID
00904. 00000 -  "%s: invalid identifier"

然后我尝试了这种方式。

INSERT INTO customer (c_id, name, age)
VALUES (1, "Carl", 45)
OUTPUT:
00984. 00000 -  "column not allowed here"

我的 DDL - 代码:

CREATE TABLE adress (
adress_id   INTEGER NOT NULL,
state       VARCHAR2(60) NOT NULL,
country     VARCHAR2(60) NOT NULL
);
ALTER TABLE adress ADD CONSTRAINT adress_pk PRIMARY KEY ( adress_id );
CREATE TABLE contract (
con_id   INTEGER NOT NULL,
length   DATE
);
ALTER TABLE contract ADD CONSTRAINT contract_pk PRIMARY KEY ( con_id );
CREATE TABLE customer (
c_id               INTEGER NOT NULL,
name               VARCHAR2(60) NOT NULL,
age                CHAR(2) NOT NULL,
adress_adress_id   INTEGER
);
ALTER TABLE customer ADD CONSTRAINT customer_pk PRIMARY KEY ( c_id );
CREATE TABLE relation_1 (
customer_c_id     INTEGER NOT NULL,
contract_con_id   INTEGER NOT NULL
);
ALTER TABLE relation_1 ADD CONSTRAINT relation_1_pk PRIMARY KEY ( customer_c_id,
                                                              contract_con_id);
ALTER TABLE customer
ADD CONSTRAINT customer_adress_fk FOREIGN KEY ( adress_adress_id )
    REFERENCES adress ( adress_id );
ALTER TABLE relation_1
ADD CONSTRAINT relation_1_contract_fk FOREIGN KEY ( contract_con_id )
    REFERENCES contract ( con_id );
ALTER TABLE relation_1
ADD CONSTRAINT relation_1_customer_fk FOREIGN KEY ( customer_c_id )
    REFERENCES customer ( c_id );

标签: sqldatabaseoracle

解决方案


VALUES()用于值列表的语法:

INSERT INTO customer (c_id, name, age)
    VALUES (1, 'Carl', 45);

您还可以使用SELECT

INSERT INTO customer (c_id, name, age)
    SELECT 1, 'Carl', 45
    FROM dual;

请注意,在这两种情况下,字符串的分隔符都是单引号而不是双引号


推荐阅读