2017-11-04 5 views
0

私が挿入した場合、私はエラーを得た:のMySQL:子行を追加または更新できません:外部キー制約が失敗:4

INSERT INTO klub_pemain (id_klub,id_pemain,tahun_masuk,tahun_keluar,jml_gol) VALUES ('152','aBJAD','1998','2004','50'); 

私はVisual Studioのコードとソースのコードを書くmysqlのコンソールに

をまず表:

DROP TABLE IF EXISTS klub; 
CREATE TABLE klub (
id_klub INT(10) NOT NULL AUTO_INCREMENT, 
nama_klub VARCHAR(15), 
tahun_berdiri INT(10), 
direktur VARCHAR(10), 
CONSTRAINT id_klub_pk PRIMARY KEY(id_klub) 
)ENGINE=innoDB; 

第二表:

DROP TABLE IF EXISTS pemain; 
CREATE TABLE pemain(
id_pemain INT(10) NOT NULL AUTO_INCREMENT, 
nama_pemain VARCHAR(10), 
tgl_lahir DATE, 
kota VARCHAR(10), 
CONSTRAINT id_klub_pk PRIMARY KEY(id_pemain) 
)ENGINE=innoDB; 

第三表:

ERROR 1452(23000):追加または子行を更新できません:外部キー制約が(sbd14を失敗し、私がメッセージを持って

DROP TABLE IF EXISTS klub_pemain; 
CREATE TABLE klub_pemain(
id_klub INT(10), 
id_pemain INT(10), 
tahun_masuk INT(10), 
tahun_keluar INT(10), 
jml_gol INT(10), 
INDEX(id_klub), 
INDEX(id_pemain), 
CONSTRAINT klub_fk FOREIGN KEY (id_klub) REFERENCES klub(id_klub) ON DELETE 
CASCADE ON UPDATE CASCADE, 
CONSTRAINT pemain_fk FOREIGN KEY (id_pemain) REFERENCES pemain(id_pemain) ON 
DELETE CASCADE ON UPDATE CASCADE 
)ENGINE=innoDB; 

klub_pemain、CONSTRAINT klub_fk FOREIGN KEY(id_klub)UPDATE CASCADE ON DELETE CASCADE ON klubid_klub)を参照)

私を助けてください:(,, THX :)

+0

私の推測では、あなたのinsert文で言及している外部キーには、対応する主キーが 'klub'または' pemain'テーブルにありません。あなたは他の情報を投稿していないので、あなた自身でこれを確認する必要があります。 –

答えて

0

あり、私はあなたに二つのことを言うことができます。あなたのklub_pemainテーブルで

  1. あなたは INTとしてすべての列のデータ型を定義していますが、データを挿入するときに文字列を挿入します。挿入クエリの値 を参照してください。 VALUES ('152','aBJAD','1998','2004','50')
  2. 第2の事柄は、klub_pemainにデータを入力する前です。これらの参照データは、pemainklubテーブルにあるはずです。 たとえば、値152としてid_klubを挿入すると、この対応する152の値の行はklubのテーブルにある必要があります。
+0

ありがとうございます:)それは動作します...... – ridwanfirdaus96

関連する問題