質問: ### 前提・実現したいこと いただいた回答をもとに再度実行したのですがなかなかうまくいきません。 実行したsql全文添付します。 DROP TABLE IF EXISTS meeting_room CASCADE; DROP TABLE IF EXISTS reserbable_room CASCADE; DROP TABLE IF EXISTS reservatio CASCADE; DROP TABLE IF EXISTS usr CASCADE; CREATE TABLE IF NOT EXISTS meeting_room( room_id SERIAL NOT NULL PRIMARY KEY, room_name VARCHAR(255) NOT NULL ); CREATE TABLE IF NOT EXISTS reservable_room( reserved_date DATE NOT NULL, room_id INT4 NOT NULL, PRIMARY KEY(reserved_date,room_id) ); CREATE TABLE IF NOT EXISTS reservation( reservation_id SERIAL NOT NULL PRIMARY KEY, end_time TIME NOT NULL, start_time TIME NOT NULL, reservel_date DATE NOT NULL, roomid INT4 NOT NULL, user_id VARCHAR(255) NOT NULL ); CREATE TABLE IF NOT EXISTS usr( user_id VARCHAR(255) NOT NULL PRIMARY KEY, first_name VARCHAR(255) NOT NULL, last_name VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, role_name VARCHAR(255) NOT NULL ); ALTER TABLE reservable_room ADD CONSTRAINT FK_f4wnx2qj0d59s9tl1q5800fw7 FOREIGN KEY(room_id) REFERENCES meeting_room(room_id); ALTER TABLE reservation ADD CONSTRAINT FK_p1k4iriqd4eo1cpnv79uvni9g FOREIGN KEY (reserved_date,room_id) REFERENCES reservable_room; ALTER TABLE reservation ADD CONSTRAINT FK_recqnfjcp370rygd9hjjxjtg FOREIGN KEY (user_id) REFERENCES usr; 下記がエラー文なのですが なぜ”Cannot add foreign key constraint”になるのかが不明です。 ### 発生している問題・エラーメッセージ Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Tomcat.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceInitializer': Invocation of init method failed; nested exception is org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement #9 of URL [file:/Users/kazuanzo/Documents/Reservation/mrs/target/classes/schema.sql]: ALTER TABLE reservable_room ADD CONSTRAINT FK_f4wnx2qj0d59s9tl1q5800fw7 FOREIGN KEY(room_id) REFERENCES meeting_room(room_id); nested exception is java.sql.SQLException: Cannot add foreign key constraint 自分なりに調査したのですが、下記内容が出ました。 【発生する条件】 クエリにシングルコーテーション「'」が含まれている場合。 シングルコーテーションを削除するか、「`」に置換する必要がある シングルコーテションが文脈に入っておりません。 お手上げになってしまいました。 ### 該当のソースコード ``` ここにご自身が実行したソースコードを書いてください ``` ### 試したこと 課題に対してアプローチしたことを記載してください ### 補足情報(言語/FW/ツール等のバージョンなど) より詳細な情報
回答: MySQLであれば、MySQL Workbenchか、MariaDB付属のHeidiSQLを使えば、SQLを直接入力せずにテーブル定義変更のクエリは生成されますので、それを参考にするのもありですね。