1

mysql でテーブルを作成したいのですが、最初のテーブルは Catégorie と呼ばれ、2 番目のテーブルは Article as と呼ばれます。

(記事) 0..* ------------- 1 (カテゴリー)

しかし、私はこのエラーが発生します:

idCat で外部キーを作成中にエラーが発生しました (データ型を確認してください)

これは私が試したコードです:

CREATE TABLE IF NOT EXISTS `Catégorie` (
  `idCat` int(11) NOT NULL,
  `libCat` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`idCat`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


CREATE TABLE IF NOT EXISTS `Article` (
  `codeArt` int(11) NOT NULL,
  `desgArt` int(11) DEFAULT NULL,
  `etatArt` varchar(50) DEFAULT NULL,
  `qteArt` int(11) DEFAULT '1',
  `qteseulmin` varchar(50) DEFAULT NULL,
  `idCat` int(11) NOT NULL,
  PRIMARY KEY (`codeArt`),
  KEY `idCat` (`idCat`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


ALTER TABLE  `Article` ADD FOREIGN KEY (  `idCat` ) REFERENCES  `GestionStock`.`Catégorie` (
`idCat`
) ON DELETE SET NULL ON UPDATE CASCADE ;
4

4 に答える 4

5

このエラーの理由の 1 つは、互換性のないデータ型です。

たとえば、私の場合、問題は、実際の ID が「UNSIGNED」であるのに、それを参照する外部キーが unsigned と宣言されていないことでした。したがって、後者の範囲はより高かった。

反対も機能することに注意してください。

于 2014-05-30T05:36:28.517 に答える
-1

ALTER TABLE ArticleADD FOREIGN KEY( idCat) REFERENCES GestionStock. language( idCat ) ON DELETE NO ACTION ON UPDATE NO ACTION ;

こんな風に使う

于 2014-08-07T12:55:55.010 に答える