【问题标题】:How to insert data into SQL table?如何将数据插入到 SQL 表中?
【发布时间】:2017-05-11 03:39:05
【问题描述】:

我了解 SQL 和数据库的基础知识。但是,每次我运行脚本将数据插入表时,都会出现以下错误:

ORA-00001: 违反唯一约束 (string.string) 提示

这是我的代码:

DROP TABLE Bag;

CREATE TABLE Bag
(
    BranchID varchar2(3),
    HouseName varchar2(16),
    StreetName varchar2(16),
    City varchar2(16),
    Postcode varchar2(6),
    TelephoneNo1 number,
    TelephoneNo2 number,

    PRIMARY KEY(BranchID)
);

INSERT INTO Bag 
VALUES (01, 'Hayway', 'Jay Rd', 'Newcastle', 'N9R5DT', 09088, 09077);

【问题讨论】:

  • 代码有几个问题。但空表上的第一次插入不应导致此错误。
  • 这一次,您将BranchID 列创建为varchar2(3),但您尝试在其中插入一个数字...
  • BranchID 必须是数字
  • 是的,但是一般你要对整数使用整数类型。
  • @Noceo 我明白你的意思了!

标签: sql oracle sql-insert


【解决方案1】:

根据文档,正确的语法应该是 ...

INSERT INTO Bag 
   (BranchID, HouseName, StreetName, City, Postcode, TelephoneNo1, TelephoneNo2)
VALUES 
   ('01', 'Hayway', 'Jay Rd', 'Newcastle', 'N9R5DT', 09088, 09077);

参考:

https://docs.oracle.com/cd/B12037_01/appdev.101/b10807/13_elems025.htm https://www.techonthenet.com/oracle/insert.php(更容易阅读)

【讨论】:

  • (1) 列引用是非常可取的,但不是必需的。 (2) 这与unique 约束无关。因此,尽管我理解答案和赞成票,但我不知道 OP 为什么接受它。
  • 我的理解是,问题是由于执行引擎不知道哪些值映射到 PK 并添加列名修复它从而证实了我的理论。
  • 有趣......也许他在 oracle 中的规范或实现是错误的......不能说我见过一个不提供列信息的插入的工作示例或其他。我很想看看这个 Gordon 的例子?
  • 另外,如果不是这样,那么问题出在哪里?
猜你喜欢
  • 2012-02-22
  • 2012-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-25
相关资源
最近更新 更多