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

Database creation and double checking for mistakes

我在我的一个项目中创建了一个数据库,但我不确定我是否仍然在做正确的事情。我仍在学习 sql 并且在我制作的一些 table 中苦苦挣扎。操作如下。

  1. 我可以用它的分配部门添加军官。
  2. 我必须检查每个部门他们的计划和他们每年的里程碑(月)对应的项目。
  3. 我还可以检查每个里程碑(月)有多少项目,反之亦然。

Table是军官,,计划,itemsmilestone,当我尝试在 http://sqlfiddle.com 中创建这个 table 时,我得到了一个错误 Can '不创建数据库'db_9_85e4c';当我尝试在 officer & division table.

中更改和创建外键时,数据库存在

这是我的 table:

官员Table

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
)
;

师Table

    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
)
;

计划Table

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

项目Table

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
)
;

里程碑Table

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
)
;

按此顺序使用 table 创建架构

  • 里程碑
  • ppmp
  • 除法
  • 官员

出现问题是因为 Officer 有 division_id 的外键,但 table 和列尚不存在。