0

私は2つのテーブルを持っています:

表 1:staff_incharge次の列を使用 - First_nameand staff_id(これは主キーです)

表 2:student-info次の列 - First_name Last_name ID(主キー)staff_id外部キーとして作成しようとしている別の列がありますが、いくつかのエラーが表示されます。

これは、MySQL Query Browser で使用しているクエリです。

 alter table `student_info`
 add constraint foreign key (staff_id)
 references staff_incharge(staff_id);

エラーは次のとおりです。

SQL 構文にエラーがあります。使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してくださいstudent_info

誰かが私が間違っていることを教えてもらえますか?

student_infoテーブルが最初に作成され、次にstaff_incharge作成されました。

次のクエリの出力:

SHOW CREATE TABLE student_info;

  CREATE TABLE `student_info` (
  `First_name` varchar(15) NOT NULL DEFAULT '',

  `Last_name` varchar(45) NOT NULL,
  `ID` int(10) unsigned NOT NULL DEFAULT '0',
  `staff_id` int(11) NOT NULL DEFAULT '0',
  `City` varchar(15) NOT NULL DEFAULT '',
  `Marks1` int(10) unsigned NOT NULL DEFAULT '0',
  `Marks2` int(10) unsigned NOT NULL DEFAULT '0',
  `Marks3` int(10) unsigned NOT NULL DEFAULT '0',
  `Total_marks` int(10) unsigned NOT NULL DEFAULT '0',
  `Branch` varchar(10) NOT NULL,
  PRIMARY KEY (`ID`,`First_name`)

SHOW CREATE TABLE staff_incharge;

'staff_incharge', 'CREATE TABLE `staff_incharge` (
  `First_name` varchar(20) NOT NULL,
  `Staff_id` int(11) NOT NULL,
  PRIMARY KEY (`Staff_id`)
) 
4

2 に答える 2

0

わかった!問題は、 と に異なるデフォルト値を指定したことIDですstaff_id。主なことは、外部キーと参照列のデータ型、長さ、属性、デフォルト値、照合順序が同じであることを確認することです。

これらのリンクは役に立ちました:

于 2013-09-24T09:09:28.427 に答える