私はphp/sqlを使い慣れていません。私は外部キーの行に構文エラーがあります。構文エラーforeign keys
構文エラーまたはアクセス違反:1064
$createQuery ="CREATE TABLE AthleteTable
(
athleteID INT(6) NOT NULL AUTO_INCREMENT,
lastName VARCHAR(20) NOT NULL,
firstName VARCHAR(30) NOT NULL,
gender CHAR(1) NOT NULL,
image VARCHAR(20) NOT NULL,
eventID INT(6) NOT NULL,
medal VARCHAR(6) NOT NULL,
CONSTRAINT foreign FOREIGN KEY (eventID) REFERENCES eventsTable(eventID),
PRIMARY KEY(athleteID)
)";
いずれかが間違っているかを知っている場合はいくつかの助けをいただければ幸いです。
------------>
新しいエラー:私はテーブルを作るのはここ
inserting data AthleteTable failed SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (
powlz1_in612
.AthleteTable
, CONSTRAINTAthleteTable_ibfk_1
FOREIGN KEY (eventID
) REFERENCESeventsTable
(eventID
))
は次のとおりです。他の人を見た後に
$createQuery ="CREATE TABLE eventsTable
(
eventID INT(6) NOT NULL AUTO_INCREMENT,
sport VARCHAR(20) NOT NULL,
event VARCHAR(30) NOT NULL,
PRIMARY KEY (eventID)
)";
$pdo->exec($createQuery);
$createQuery ="CREATE TABLE AthleteTable
(
athleteID INT(6) NOT NULL AUTO_INCREMENT,
firstName VARCHAR(20) NOT NULL,
lastName VARCHAR(20) NOT NULL,
gender VARCHAR(20) NOT NULL,
image VARCHAR(20) NOT NULL,
eventID INT(20) NOT NULL,
medal VARCHAR(6) NOT NULL,
CONSTRAINT SportEvents FOREIGN KEY (`eventID`) REFERENCES eventsTable(`eventID`),
PRIMARY KEY(`athleteID`)
)";
$pdo->exec($createQuery);
すべての質問が欠落しているようですが、両方のテーブルにeventIDが含まれているので、なぜ失敗しているのか分かりません。
私はそれを変更してもまだエラーが発生しました。別のファイルにエラーがあり、修正されたときに何とかこの問題を解決しました。 – flanelman
FKを受け入れる準備が整っている他のインデックスと列に置かれます。しかし、それは少なくともあなたの1064を削除しました – Drew
新しいエラーが発生しました。何が原因なのでしょうか?私は元の投稿を編集しました:) – flanelman