Aşağıdaki create ifadesi, MariaDB tablolarımın birinin mevcut yapısını gösterir.Dizinleri kaldırmak mümkün değil.
CREATE TABLE `councilor` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
`user` BIGINT(20) NOT NULL,
`council` INT(11) NOT NULL,
`role` CHAR(50) NOT NULL DEFAULT 'member' COLLATE 'utf8_persian_ci',
`cDate` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
`uDate` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`startDate` DATETIME NULL DEFAULT NULL,
`endDate` DATETIME NULL DEFAULT NULL,
`responsibility` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_persian_ci',
`details` TEXT NULL COLLATE 'utf8_persian_ci',
PRIMARY KEY (`id`),
UNIQUE INDEX `userId_councilId` (`user`, `council`),
INDEX `council_user_council_foreign` (`council`)
)
COLLATE='utf8_persian_ci'
ENGINE=InnoDB
ROW_FORMAT=COMPACT
AUTO_INCREMENT=11;
Benzersiz dizini kaldırmam gerekiyor, ancak iki anahtardan birini silmeye çalışıyorum.
ALTER TABLE `councilor`
DROP INDEX `userId_councilId`;
/* SQL Hatası (1553): endeksi bırakamazsınız 'userId_councilId': endeksi bırakamazsınız 'council_user_council_foreign: Bir yabancı anahtar kısıtlaması */
ALTER TABLE `councilor`
DROP INDEX `council_user_council_foreign`;
/* SQL Hatası (1553) gerekli ': yabancı anahtar kısıtlaması gerekli */
Tüm tablo satırlarının kaldırılması da işe yaramıyor. Ancak, yukarıdaki komut dosyası tarafından yeni bir tablo oluşturulursa sorun oluşmaz.
son güncellenen tüm soru anlamsız yaptı. Pls tüm soru gözden ve düzgün güncellendi –
Gönderdiğiniz Yapı yanlış –
Buraya en iyi cevabı deneyin: http://stackoverflow.com/questions/15501673/how-to-temporarily-disable-a-foreign-key-constraint -in-mysql –