当前位置: 首页 > 知识库问答 >
问题:

SQL update语句可以向外键列插入空值

哈翔
2023-03-14
EMPLOYEE (employee_ID  primary key)(Foreign key Department_id reference department(department_id))
employee_id First_name  Last_name  Department_id  Salary  Commission
154 Aaan Eaan 80 6000 0.2
166 Baan Faan 80 7000 0.1
167 Caan Gaan 80 7000 0.3
169 Daan Haan 80 8000 0.4
Department_id  Dept_name  location
10 AA 1700
40 BB 1800
70 CC 1900
80 DD 2000
UPDATE employee a
SET department_id=(select department_id 
                   from departments
                   where location = 2100),
    (salary,comission)=(select 1.1*AVG(salary), 1.5*AVG(comission)
                        from employee b
                        where a.department_id = b.department_id)
where first_name||' '||last_name = 'Caan Gaan';

共有1个答案

程亦
2023-03-14

将执行上面的代码。是的,在这种情况下插入null值。请在这里阅读oracle文档--http://docs.oracle.com/cd/b19306_01/server.102/b14220/data_int.htm#sthref3085

它将给你主要的概念,为什么null值将插入到外键列。

谢谢

 类似资料:
  • 问题内容: 我正在尝试像这样从C#向我的数据库中插入一个空值: DBNull.Value是日期可以在的地方,但我希望它等于null,但它似乎将默认日期设置为1900 … 问题答案: 改成: 返回空字符串,但您希望改为null。 但是,这种构建查询的方式可能会导致问题。例如,如果您的字符串之一包含引号’,则结果查询将引发错误。更好的方法是使用参数并在SqlCommand对象上进行设置:

  • 下面是创建表的脚本:

  • 问题内容: 我有两个实体: 我正在尝试通过执行以下操作插入文件(以及随后的标签): 然后,我使用以下命令将文件插入DAO: 在我的日志中,我在“文件”表中看到一个插入,在标签表中看到2个插入,但是,指向我的文件表(file_id)的标签表中的外键为NULL。 我可能做错了什么? 问题答案: 您不是将标签的文件设置为文件,而是将标签的文件设置为文件。请记住,在OOP中,与关系模型相反,您必须设置关系

  • 问题内容: 我想每次插入带有日期+ 1的行。这是一个简单的SQL循环。我正在使用SSIS,因此StartDate和Enddate是变量。 这是我的代码: 错误信息: 消息156,级别15,状态1,行11关键字’select’附近的语法错误。 问题答案: 无需在声明。 代替 和

  • 问题内容: 我有一个表,其中有几个ID列指向其他表。 我希望 只有 在将数据放入其中时,外键才能强制完整性。如果我稍后进行更新以填充该列,则它还应该检查约束。 (这可能取决于数据库服务器,我使用的是MySQL和InnoDB表类型) 我相信这是一个合理的期望,但是如果我错了,请纠正我。 问题答案: 是的,您只能在值不为NULL时强制执行约束。可以使用以下示例轻松测试它: 第一次插入将通过,因为我们在

  • 问题内容: 我目前正在为我们团队的项目设计数据库结构。我目前在脑海中有一个非常疑问的问题:能否将外键用作另一个表上的主键? 以下是我们系统的数据库设计表: 我想做的是,该表应包含学生用户和指导顾问用户的ID(应该是系统的登录凭据)和密码。简而言之,和表的主键也是表的外键。但我不确定是否允许。 另一个问题是:一个表中也存在,这需要一个(其为中表)和一个(这也是在)它的每个记录的。如果学生和辅导员的I