0

データベース内の別のテーブルを参照するテーブルを作成しようとしていますが、このエラーが発生しています。

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UInt32 PRIMARY KEY, name VARCHAR(20), handle VARCHAR(20), countryName VARCHAR(20' at line 1 

mySQL参照ページでエラー #1064 を見ましたが、その構造の概要を示しているだけの vuage エラーです。

 Error: 1064 SQLSTATE: 42000 (ER_PARSE_ERROR)

Message: %s near '%s' at line %d

これは私が実行しようとしたコードです

CREATE TABLE User (userID UInt32 PRIMARY KEY, name VARCHAR(20), handle VARCHAR(20), countryName VARCHAR(20) references Countries(SID))engine=innodb;

国テーブルは既に作成されているため、何が問題を引き起こしているのか完全にはわかりません

どんな助けでも大歓迎です。

これは私が国を定義した方法ではないことを追加しました

CREATE TABLE Countries (countryName VARCHAR(20) PRIMARY KEY)engine=innodb;
4

1 に答える 1

1

更新された応答:

テーブル定義から制約定義を移動すると、問題を特定するのに役立ちました。

CREATE TABLE User(
   userID UInt32 PRIMARY KEY
  ,name VARCHAR(20)
  ,handle VARCHAR(20)
  ,countryName VARCHAR(20)
)engine=innodb;


ALTER TABLE user ADD CONSTRAINT user_country_name_fk FOREIGN KEY(countryName) REFERENCES Countries(SID);

UInt32テーブル作成の失敗は、データ型の使用が原因でした。に変更されましたint。テーブルの作成に成功しました。

外部キー制約が の間違った列を参照していましたCountries。を参照してSIDいましたが、参照する必要がありましたcountryName

于 2012-08-06T02:27:04.537 に答える