这是我的代码:
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说:
答案 0 :(得分:0)
如果重新创建已删除的表,则它必须具有符合引用它的外键约束的定义。它必须具有正确的列名和类型,并且必须在引用的键上具有索引,如前所述。如果不满足,则MySQL返回错误号1005并在错误消息中引用错误150.