前提・実現したいこと
WEBアプリケーションを制作していますが、アプリが起動するたびにテーブルのレコードが増えてしまう状態を
解消したいです。
該当のソースコード
schema.sql
CREATE TABLE IF NOT EXISTS WORK_TYPE( id INT NOT NULL, type VARCHAR NOT NULL );
data.sql
INSERT INTO `WORK_TYPE` VALUES (1,'テスト'), (2,'コーディング'), (3,'要件定義'), (4,'ミーティング');
試したこと
INSERT INTO なので起動するたびにテーブルに挿入されてしまうんだろう、というところまでは分かりました。
そこで、「テーブルにレコードが存在する場合は挿入しない」という記述をしたいのですが、以下を実行すると
エラーが発生します。
INSERT INTO `WORK_TYPE` ( `id` ,`type` ) SELECT (1,'テスト'), (2,'コーディング'), (3,'要件定義'), (4,'ミーティング') FROM dual WHERE NOT EXISTS ( SELECT `id` FROM `WORK_TYPE` WHERE `type` = 'テスト' OR `type` = 'コーディング' OR `type` = '要件定義' OR `type` ='ミーティング' )
「列番号が一致しない」とありますが、どのように修正すべきでしょうか?
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
Spring Tool Suite 4-4.10.0.RELEASE
H2 DATABASE
MySQL
H2 DatabaseとMySQLをご提示いただいていますが、ご提示頂いたSQLは、どちらのデータベースで試されているのでしょうか?
それとも、H2 DatabaseでもMySQLでも、問題なく動くSQLが必要なのでしょうか?
回答3件
あなたの回答
tips
プレビュー