数据库创建和错误的双重检查

时间:2017-06-17 05:11:13

标签: mysql sql database datagrip

我在我的一个项目中创建了一个数据库,但我不确定我是否仍然这样做。我还在学习sql,而且我在我制作的一些表格中徘徊。操作如下。

  1. 我可以添加官员指定部门。
  2. 我必须每个部门检查他们的计划及其相应的项目,每年有里程碑(月)。
  3. 我还可以查看每个里程碑(月)的数量和数量。副Versa。
  4. 表格是官员部门计划项目里程碑,当我尝试在http://sqlfiddle.com中创建此表时,我收到错误无法创建数据库' db_9_85e4c&#39 ;;当我尝试在官员&中修改和创建外键时,数据库存在分区表

    这是我的桌子:

    军官表

    create table officer
    (
        id int not null auto_increment
            primary key,
        name varchar(100) not null,
        s_position varchar(50) null,
        f_position varchar(100) not null,
        constraint officer_name_uindex
            unique (name),
        constraint officer_position_uindex
            unique (f_position),
        constraint officer_division_division_id_fk
            foreign key (id) references test.division (division_id)
                on update cascade on delete cascade
    )
    ;
    

    分部表

        create table division
    (
        division_id int not null
            primary key,
        acronym varchar(50) not null,
        sequence_id int not null,
        decription varchar(50) not null,
        constraint division_sequesnce_id_uindex
            unique (sequence_id),
        constraint division_acronym_uindex
            unique (acronym),
        constraint division_decription_uindex
            unique (decription),
        constraint division_ppmp_ppmp_id_fk
            foreign key (division_id) references test.ppmp (ppmp_id)
                on update cascade on delete cascade
    )
    ;
    

    计划表

    create table ppmp
    (
        ppmp_id int not null auto_increment
            primary key,
        year varchar(50) not null
    )
    ;
    

    项目表

    create table items
    (
        id int not null auto_increment
            primary key,
        description varchar(100) not null,
        unit varchar(50) not null,
        quantity int not null,
        budget double not null,
        mode varchar(50) not null,
        constraint items_milestone_id_fk
            foreign key (id) references test.milestone (id)
                on update cascade on delete cascade,
        constraint items_ppmp_ppmp_id_fk
            foreign key (id) references test.ppmp (ppmp_id)
                on update cascade on delete cascade
    )
    ;
    

    里程碑表

    create table milestone
    (
        id int not null auto_increment
            primary key,
        january int null,
        february int null,
        march int null,
        april int null,
        may int null,
        june int null,
        july int null,
        august int null,
        september int null,
        october int null,
        november int null,
        decemeber int null
    )
    ;
    

    plan

1 个答案:

答案 0 :(得分:1)

使用此顺序的表格创建模式

  • 里程碑
  • PPMP

问题正在发生,因为官员对division_id有一个关键但该表和列尚不存在。