SORU
21 EYLÜL 2009, PAZARTESİ


Yabancı Anahtarlar ile MySQL tabloları Oluştururken hata veriyor: 150

Deniyorum bir tablo oluşturmak için MySQL ile iki yabancı anahtarlar, referans birincil anahtarları 2 diğer tablolar, ama ben bir hata alıyorum: 150 hata ve olmayacaktır oluşturmak tablo.

Burada 3 tablo: SQL

CREATE TABLE role_groups (
  `role_group_id` int(11) NOT NULL `AUTO_INCREMENT`,
  `name` varchar(20),
  `description` varchar(200),
  PRIMARY KEY (`role_group_id`)
) ENGINE=InnoDB;

CREATE TABLE IF NOT EXISTS `roles` (
  `role_id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50),
  `description` varchar(200),
  PRIMARY KEY (`role_id`)
) ENGINE=InnoDB;

create table role_map (
  `role_map_id` int not null `auto_increment`,
  `role_id` int not null,
  `role_group_id` int not null,
  primary key(`role_map_id`),
  foreign key(`role_id`) references roles(`role_id`),
  foreign key(`role_group_id`) references role_groups(`role_group_id`)
) engine=InnoDB;

Herhangi bir yardım büyük mutluluk duyacağız.

CEVAP
12 Ocak 2011, ÇARŞAMBA


TABLO YABANCI ANAHTAR EKLEME ALTER ile aynı problem vardı.

Bir saat sonra, bu koşullar hata 150 değil almak için yerine getirilmesi gereken buldum:

  1. İki tablo aynı motor olmalı=yani MOTORU Orada. (diğerleri: çok çalışıyor hali hazırda MOTOR=)
  2. İki tablo aynı karakter kümesi olmalı.
  3. PK sütun(s) ana tablo ve FK sütunlar aynı veri türü olmalıdır. (eğer Ana tabloda BİRİNCİL Anahtar İMZASIZ, Çocuk Masa alanında İMZASIZ seçtiğinizden emin olun
  4. PK sütun(s) ana tablo ve FK sütun(lar) tanımlama ise harmanlama türü varsa, aynı harmanlama türü olması gerekir;
  5. Eğer zaten yabancı anahtar tablosunda veri varsa, FK sütun değeri(s) ana tablodaki değerler PK sütunları eşleştirmek gerekir.
  6. Ve alt tablo geçici bir tablo olamaz.

Bu yardımcı olur umarım.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FPSRussia

    FPSRussia

    19 NİSAN 2010
  • The Scary Snowman

    The Scary Sn

    1 ŞUBAT 2011
  • Chaîne de TheMoustic

    Chaîne de T

    5 Kasım 2006