1

这是我的代码:

 create table if not exists Pelajar (
    no_pelajar char(7) not null,
    nama varchar(30) not null,
    alamat varchar(50) not null,
    no_telepon varchar(10),
    grade integer not null,
    primary key (no_pelajar)
);

create table if not exists Kelas (
    kode_kelas char(5) not null,
    no_pengajar char(9) not null,
    no_pelajaran char(4) not null,
    ruang integer not null,
    waktu char(5) not null,
    primary key (kode_kelas)
);

create table if not exists Pelajaran (
    no_pelajaran char(4) not null,
    grade integer not null,
    subjek varchar(30) not null,
    primary key (no_pelajaran)
);

create table if not exists Pengajar (
    no_pengajar char(9) not null,
    nama varchar(30) not null,
    alamat varchar(50) not null,
    no_telepon varchar(10) not null,
    primary key (no_pengajar)
);

create table if not exists Pembayaran (
    no_pembayaran char(11) not null,
    status_pembayaran varchar(11) not null,
    tgl_pembayaran char(8) not null,
    primary key (no_pembayaran)
);

create table if not exists KartuAnggota (
    no_pelajar char(7) not null,
    kode_kelas char(5) not null
);

create table if not exists SlipPembayaran (
    no_pembayaran char(11) not null,
    no_pelajar char(7) not null
);

alter table SlipPembayaran
    add foreign key (no_pembayaran)
    references Pembayaran(no_pembayaran);

alter table SlipPembayaran  
    add foreign key (no_pelajar)
    references Pelajar(no_pelajar);

alter table KartuAnggota
    add foreign key (kode_kelas) 
    references  Kelas(kode_kelas);

alter table KartuAnggota
    add foreign key (no_pelajar)
    references Pelajar(no_pelajar); 

alter table Kelas
    add foreign key (no_pelajaran) 
    references  Pelajaran(no_pelajaran);

alter table Kelas
    add foreign key (no_pengajar) 
    references  Pengajar(no_pengajar);

==================================================== ================================ 运行代码后,我收到消息:SQL查询:

ALTER TABLE KartuAnggota ADD FOREIGN KEY ( kode_kelas ) REFERENCES Kelas( kode_kelas ) ;

MySQL 说:

#1005 - 无法创建表 'bimbel.#sql-2f2c_1c6' (errno: 150)

你能解释一下吗?

4

1 回答 1

0

如果您重新创建已删除的表,则它必须具有符合引用它的外键约束的定义。如前所述,它必须具有正确的列名和类型,并且必须在引用的键上具有索引。如果这些不满足,MySQL 返回错误号 1005 并在错误消息中引用错误 150。

于 2013-04-15T22:10:21.560 回答