首页 文章

Oracle 11g“INSERT INTO SELECT”行为不端

提问于
浏览
0

我正在尝试使用以下示例查询做一个非常简单的事情(无法发布实际查询:()

INSERT INTO Students( id, roll_number, Student_name) SELECT 1, 2, 'MyName' FROM DUAL;

ID列具有NOT NULL约束集 . 当我执行此查询时,我收到以下错误:SQL错误:ORA-01400:无法插入NULL(“SCHEMA” . “学生” . “ID”)01400 . 00000 - “无法将NULL插入(%s)”

ID列的数据类型为NUMBER .

任何人都可以帮助解决问题 .

提前致谢 .

2 回答

  • 0

    我要做的是单独运行Select部分,然后查看返回的数据 . 即

    Select First_Field, Second_Field, 'Bob'
    From MyTable
    Where First_Field = NULL;
    

    是什么让你 . 你也可以这样做:

    Select count(*)
    From MyTable
    Where coalesce(First_Field,1) =1;
    

    顺便说一句,你说你的领域是一个数字,但只是FYI . 插入到varchar2字段中的''被解释为NULL . 发现了困难的方式

  • 0

    好像我正在养成回答自己问题的习惯......

    当我仔细研究表格时,我发现有两个ID列(当然有不同的名称):

    一列存储此表的主键,而其他列存储外键作为其他表的链接 .

    感谢大家的回复,这让我想知道我做错了什么 .

    万分感谢 :)

相关问题