Diğer cevaplar oldukça yararlı olsa da, sadece deneyimimi paylaşmak istedim.
id
Zaten diğer tablolarda ( veri ile ) yabancı anahtar olarak başvurulmakta olan bir tablo sildi ve yeniden oluşturmak / bazı ek sütunlarla tablo almak çalıştı sorunla karşı karşıya .
(PhpMyAdmin'de oluşturulan) rekreasyon sorgusu aşağıdaki gibi görünüyordu:
CREATE TABLE `the_table` (
`id` int(11) NOT NULL, /* No PRIMARY KEY index */
`name` varchar(255) NOT NULL,
`name_fa` varchar(255) NOT NULL,
`name_pa` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
... /* SOME DATA DUMP OPERATION */
ALTER TABLE `the_table`
ADD PRIMARY KEY (`id`), /* PRIMARY KEY INDEX */
ADD UNIQUE KEY `uk_acu_donor_name` (`name`);
Fark edebileceğiniz gibi, PRIMARY KEY
dizin oluşturulduktan ( ve verilerin eklenmesinden sonra) soruna neden olan ) .
Çözüm
Çözüm, bunun için yabancı anahtar olarak başvurulan PRIMARY KEY
tablo tanımı sorgusuna dizin eklemek ve id
ayrıca ALTER TABLE
dizinlerin ayarlandığı kısımdan kaldırmaktı :
CREATE TABLE `the_table` (
`id` int(11) NOT NULL PRIMARY KEY, /* <<== PRIMARY KEY INDEX ON CREATION */
`name` varchar(255) NOT NULL,
`name_fa` varchar(255) NOT NULL,
`name_pa` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
table2.IDFromTable1
vetable1.ID
?