[ad_1]
主キーと別の属性で構成される複合外部キーを持つテーブルに値を挿入しようとすると、エラーが発生し続けます。 ここに私のクエリがあります:
SQL
CREATE TABLE `User` ( `IC` varchar(50), `Name` varchar(50), `PhNo` int(12), `Email` varchar(50), `UserType` varchar(50), CONSTRAINT UNIQUE (IC,UserType), PRIMARY KEY (`IC`) ); CREATE TABLE `Patient` ( `IC` varchar(50), `Case` varchar(50), `UserType` varchar(50), FOREIGN KEY (IC,UserType) REFERENCES USER (IC,UserType), PRIMARY KEY (`IC`) );
クエリを使用して手動で挿入しようとすると、構文エラーが表示されます。
私が試したこと:
これは私が試した挿入クエリです
SQL
INSERT INTO PATIENT(IC,Case,UserType) VALUES ("123456789101","Non-Urgent","Patient");
解決策 1
USER
は MySql キーワードであり、テーブル名として使用しないでください。使用する場合は、おそらくバッククォートで囲む必要があります。
FOREIGN KEY (IC,UserType) REFERENCES `USER` (IC,UserType),
それを修正すると、問題が解決する場合があります。
解決策 2
あなたはエラーの内容を教えてくれなかったので、推測するしかありません。
推測では、あなたは ANSI_QUOTES[^] SQL モードが有効になっています。つまり、次のことを意味します。
ANSI_QUOTES SQL モードが有効な場合、二重引用符で囲まれた文字列は識別子として解釈されるため、文字列リテラルは単一引用符でのみ引用できます。
したがって、文字列リテラルを修正する必要があります。
SQL
INSERT INTO PATIENT (IC, Case, UserType) VALUES ('123456789101', 'Non-Urgent', 'Patient');
[ad_2]
コメント