質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

2回答

5987閲覧

SQLコマンドが実行できません

ryoga4869

総合スコア17

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2019/06/26 05:49

編集2019/06/26 06:03

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

顧客画面の作成中です。
データベースを利用し顧客情報を登録するためにSQLコマンドを利用して
employeeテーブルを作成しようとしましたが以下のような
エラーメッセージが出て作成できません。
以前作成した際に問題は無かったのですが
”VARCHAR”のみに赤波線が引かれている状態です。
改善策等ありますでしょうか?

エラーメッセージ `列 "3" が見つかりません Column "3" not found; SQL statement: CREATE TABLE EMPLOYEE( id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, name VARCHAR(20) NOT NULL, tel INT NOT NULL, gender CHAR(1) CHECK(gender = '1' OR gender = '2' OR gender = "3" ) ) [42122-199] 42S22/42122 (ヘルプ) org.h2.jdbc.JdbcSQLSyntaxErrorException: 列 "3" が見つかりません Column "3" not found; SQL statement: CREATE TABLE EMPLOYEE( id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, name VARCHAR(20) NOT NULL, tel INT NOT NULL, gender CHAR(1) CHECK(gender = '1' OR gender = '2' OR gender = "3" ) ) [42122-199] `` ``SQL`ここに言語名を入力 ソースコード `CREATE TABLE EMPLOYEE( id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, name VARCHAR(20) NOT NULL, tel INT NOT NULL, gender CHAR(1) CHECK(gender = '1' OR gender = '2' OR gender = "3" ) );`` ### 試したこと VARCHARにのみ問題があるようでCHARは問題ないようです。 エラーのサイトにも3行目に選択できない文字があります。 と書かれているだけで他のサイト等は見つかりませんでした。 #種類とバージョンについて追記 H2 Database EngineのVersion 1.4.199 (2019-03-13) 「Generic(H2 Server)」サーバーモード を利用しております

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2019/06/26 05:55

SQLの種類とバージョンはわかりますか?
guest

回答2

0

SQL

1gender CHAR(1) CHECK(gender = '1' OR gender = '2' OR gender = "3" ) 23gender CHAR(1) CHECK(gender IN('1', '2', '3'))

では?

投稿2019/06/26 06:18

編集2019/06/26 07:15
Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

sql

1--(抜粋) 2gender = "3"

ダブルクォートになっているのが原因では?
シングルクォートにしましょう。

sql

1--(抜粋) 2gender = '3'

投稿2019/06/26 06:08

alg

総合スコア2019

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryoga4869

2019/06/26 06:12

修正しましたがまた別のエラーが発生しました。 SQLステートメントに文法エラーがあります "CREATE TABLE EMPLOYEE( ID INT AUTO_INCREMENT NOT NULL PRIMARY KEY, NAME VARCHAR(20) NOT NULL, TEL INT NOT NULL, GENDER CHAR(1) CHECK(GENDER = '1' OR GENDER = '2' OR GENDER =[*] ’3’) ) " Syntax error in SQL statement "CREATE TABLE EMPLOYEE( ID INT AUTO_INCREMENT NOT NULL PRIMARY KEY, NAME VARCHAR(20) NOT NULL, TEL INT NOT NULL, GENDER CHAR(1) CHECK(GENDER = '1' OR GENDER = '2' OR GENDER =[*] ’3’) ) "; SQL statement: CREATE TABLE EMPLOYEE( id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, name VARCHAR(20) NOT NULL, tel INT NOT NULL, gender CHAR(1) CHECK(gender = '1' OR gender = '2' OR gender = ’3’) ) [42000-199] 42000/42000
ryoga4869

2019/06/26 06:16

すみません。またコードミスをしていました。 無事作成することが出来ました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問