0

データベーステーブルを作成して接続しようとしています。データ型が同一であることを確認しました。また、FK を追加する前にテーブルが作成されるようにします。アドバイスをいただければ幸いです。

SQL query:

ALTER TABLE `Member` ADD FOREIGN KEY ( memberId ) REFERENCES `Order_Head` ( `memberId` ) ;

MySQL said: Documentation
#1005 - Can't create table 'test2.#sql-184c_63' (errno: 150) (Details...) 





-- ---
-- Table 'Order_Head'
-- 
-- ---

DROP TABLE IF EXISTS `Order_Head`;

CREATE TABLE `Order_Head` (
  `orderId` INTEGER NOT NULL AUTO_INCREMENT,
  `memberId` INTEGER NOT NULL,
  `date` DATE NOT NULL,
  PRIMARY KEY (`orderId`, `memberId`)
);

-- ---
-- Table 'Member'
-- 
-- ---

DROP TABLE IF EXISTS `Member`;

CREATE TABLE `Member` (
  `memberId` INTEGER NOT NULL AUTO_INCREMENT,
  `userName` VARCHAR(50) NOT NULL,
  `password` VARCHAR(50) NOT NULL,
  `email` VARCHAR(100) NOT NULL,
  `isAdmin` BOOLEAN NOT NULL DEFAULT false,
  PRIMARY KEY (`memberId`)
);

-- ---
-- Foreign Keys 
-- ---

ALTER TABLE `Member` ADD FOREIGN KEY (memberId) REFERENCES `Order_Head` (`memberId`);

-- ---
-- Table Properties
-- ---
ALTER TABLE `Order_Head` ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
ALTER TABLE `Member` ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
4

1 に答える 1

1

設定しようとしている外部キーが主キーであり、 がAUTO_INCREMENT含まれている可能性があります。

ALTER TABLE `Order_Head` ADD FOREIGN KEY (memberId) REFERENCES `Member` (`memberId`);

CREATE TABLEステートメント内で外部キーを作成していない特定の理由はありますか? そうでない場合は、おそらくそうする必要があります。

于 2012-04-18T20:35:29.670 に答える