SQL için çok yeni ve yeni bir sütun oluşturmak için basit bir ALTER TABLE gerçekleştirmeye çalışıyorum ve veritabanımda başka bir basit tabloya başvurmak için bir yabancı anahtar olarak kullanıyorum. Ben InnoDB'nin olmak hem tabloları deđiţtirdiđiniz AncakYabancı Anahtar (MySQL) nasıl eklenir
, ALTER tablo kodu çalıştırırken, aşağıdaki hatayı alıyorum:
Tablo 1: Aşağıda
Error 1452 Cannot add or update a child row:
a foreign key constraint fails (`toys`.<result 2 when
explaining filename '#sql-6d4_6'>, CONSTRAINT
`#sql-6d4_6_ibfk_1` FOREIGN KEY (`toy_id`) REFERENCES `toys` (`toy_id`))
hem tabloları DESC şunlardır:
FIELD TYPE NULL KEY EXTRA
toy_id int(11) NO PRI auto_increment
toy varchar(50) YES
Tablo 2:
FIELD TYPE NULL KEY EXTRA
boy_id int(11) NO PRI auto_increment
boy varchar(50) YES
Ve bu gerçekleştirmeye çalışıyordu ALTER sorgusu: Ben bunu anlamaya çalışıyorum her yerinde baktım
ALTER TABLE boys
ADD COLUMN toy_id INT NOT NULL,
ADD CONSTRAINT toys_toy_id_fk
FOREIGN KEY(toy_id)
REFERENCES toys(toy_id);
ama hiç şansım. Şimdiden teşekkürler ve bu newbie :) karşı nazik olun
DÜZENLEME: İşte
GÖSTER hem tabloları için CREATE TABLE şunlardır:
TABLO 1:
CREATE TABLE `toys` (
`toy_id` int(11) NOT NULL AUTO_INCREMENT,
`toy` varchar(50) DEFAULT NULL,
PRIMARY KEY (`toy_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
TABLO 2:
CREATE TABLE `boys` (
`boy_id` int(11) NOT NULL AUTO_INCREMENT,
`boy` varchar(50) DEFAULT NULL,
PRIMARY KEY (`boy_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
son 'ADD' kaldır –
ADD CONSTRAINT öğesini kaldırmayı ve ADD FOREIGN ANAHTAR'ı bırakmayı ve ayrıca ADD CONSTRAINT öğesini bırakmayı ve FOREIGN KEY'den önce "ADD" yi kaldırmayı denedim, ancak aynı hatayı aldım. – Keith
"OLUŞTURMA MASA TABLO OYUNU" ve "OLUŞTUR MASA MASA ÇOCUĞU" ifadesini yayınlayabilir misiniz? –