2013-04-15 129 views
1

這裏是我的代碼:SQL錯誤:#1005 - 無法創建表

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)

你能解釋一下嗎?

回答

0

如果您重新創建已刪除的表,它必須具有符合引用它的外鍵約束的定義。如前所述,它必須具有正確的列名和類型,並且必須在引用的鍵上有索引。如果這些不滿足,MySQL將返回錯誤號1005並引用錯誤消息中的錯誤150。

相關問題