将值插入继承表sql

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将值插入继承表sql相关的知识,希望对你有一定的参考价值。

CREATE TABLE projeto.Person(
    Person_Code     INT IDENTITY(1,1)   NOT NULL,
    birthDate           DATE                NOT NULL,
    Name                VARCHAR(50)         NOT NULL,
    PRIMARY KEY(Person_Code)
)

CREATE TABLE projeto.Student (
    Student_Code        INT REFERENCES projeto.Person(Person_Code),
    payment             INT NOT NULL,
    PRIMARY KEY(Student_Code),
)
CREATE TABLE projeto.teacher (
    payment             INT         NOT NULL,
    teacher_Code        INT,
    PRIMARY KEY(teacher_Code),
    CHECK(payment> 350)
)

我如何在学生中插入价值观,注意学生具有所有人的属性?例如学生有名字,生日...

我尝试过:

INSERT INTO projeto.Person VALUES 
    ('1961-03-26', John Adam')

但是这会增加我的面容,我无法确定您是否是学生。

答案

我想它如何获取您正在询问的最近插入的ID?在这种情况下,请使用scope_identity()

declare @BirthDate date, @Name varchar(50), @Payment int, @IsStudent bit, @IsTeacher bit, @NewId int;

-- SET THE RELEVANT VARIABLE VALUES

-- Insert person
insert into projeto.Person (BirthDate, [Name])
  select @BirthDate, @Name;

-- Get ID of person record
set @NewId = scope_identity();

-- Insert Student record if a student
insert into projeto.Student (Student_Code, Payment)
  select @NewId, @Payment
  where @IsStudent = 1;

-- Insert Teacher record if a teacher
insert into projeto.Teacher (Teacher_Code, Payment)
  select @NewId, @Payment
  where @IsTeacher = 1;

以上是关于将值插入继承表sql的主要内容,如果未能解决你的问题,请参考以下文章

如何使用触发器和 if 条件将值插入 SQL 表?

我试图通过加入 3 个表将值插入表中,但是我收到“ORA-00933:SQL 命令未正确结束”错误''

将值插入记录类型表

SQL如何将值插入对应实体号EntityID的最后一行,表如下

Hibernate中的继承映射

“xxxx”表 - 无法修改表。 不能将值 NULL 插入列 'xxxx'