🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Q&A

5回答

15283閲覧

SQLiteのエラー文改善方法

KOU2000

総合スコア17

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

0グッド

0クリップ

投稿2019/09/23 08:54

編集2019/09/23 17:30

SQLite
コード

DROP

1DROP TABLE IF EXISTS user; 2 3CREATE TABLE book ( 4 id INTEGER PRIMARY KEY AUTOINCREMENT, 5 user_id INTEGER NOT NULL, 6 title TEXT NOT NULL, 7 auther TEXT, 8 publisher TEXT 9); 10 11CREATE TABLE user ( 12 id INTEGER PRIMARY KEY AUTOINCREMENT, 13 username TEXT UNIQUE NOT NULL, 14 password TEXT NOT NULL 15); 16 17重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態 18エラー SQL80001: Incorrect syntax near 'user'. Expecting '.', ID, or QUOTED_ID. WebProject1 C:\Users\rad71\source\repos\WebProject1\WebProject1\flask_book_management_1\instance\schema.sql 2 19 20重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態 21エラー SQL80001: Incorrect syntax near ','. Expecting ID, QUOTED_ID, STRING, or TEXT_LEX. WebProject1 C:\Users\rad71\source\repos\WebProject1\WebProject1\flask_book_management_1\instance\schema.sql 5 22 23重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態 24エラー SQL80001: Incorrect syntax near 'user'. Expecting '.', ID, or QUOTED_ID. WebProject1 C:\Users\rad71\source\repos\WebProject1\WebProject1\flask_book_management_1\instance\schema.sql 12 25 26重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態 27エラー SQL80001: Incorrect syntax near ','. Expecting ID, QUOTED_ID, STRING, or TEXT_LEX. WebProject1 C:\Users\rad71\source\repos\WebProject1\WebProject1\flask_book_management_1\instance\schema.sql 13 28 29このエラー文の改善方法が分かりません。 30教えて頂けないでしょうか。

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

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

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

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

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

alg

2019/09/23 09:00

DBMS は何でしょうか?(MySQL, MariaDB, PostgreSQL, Oracle, SQL Server, SQlite など)
Orlofsky

2019/09/23 09:04

同じSQLでもデータベースやそのバージョンによって方言が大きいですから、どのデータベースを使うのかを質問のタグで明示したり、バージョンも明記した方が適切なコメントが付き易いです。
nandymak

2019/09/23 09:11

データベースの種類やバージョンは何でしょうか? SQL文が4つ有りますが、どの行でエラーになっていますか? >SQL80001: Incorrect syntax near 'user'. このメッセージから何か判りませんか? SQLは入門書などから取ってきたのでしょうか?転記ミスはありませんか?
yuki_fujisawa

2019/09/23 09:40

SQL80001 で検索すると`sql server` が沢山ヒットするので SQL Serverでしょうか?
Orlofsky

2019/09/23 22:03

markdown の修正方法が間違っています。 ``` コード ```
guest

回答5

0

What a fantabulous post this has been. Never seen this kind of useful post. I am grateful to you and expect more number of posts like these. Thank you very much.tambah followers

投稿2023/09/23 11:49

mehmoodalam

総合スコア10

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

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

0

Mac標準でインストールされているSQLite
で検証したのですが、エラーを再現できませんでした。

文法的なミスではなく、実行環境に依存した問題だと思います。

以下、共有していただけますでしょうか?

  • 実行手順
  • 実行コマンド
  • SQLバージョン

検証したバージョン

SQLite version 3.27.2 2019-02-25 16:06:06

実行文

bash

1sqlite> DROP TABLE IF EXISTS user; 2sqlite> CREATE TABLE user ( 3 ...> id INTEGER PRIMARY KEY AUTOINCREMENT, 4 ...> username TEXT UNIQUE NOT NULL, 5 ...> password TEXT NOT NULL 6 ...> ); 7sqlite> .schema user 8CREATE TABLE user ( 9id INTEGER PRIMARY KEY AUTOINCREMENT, 10username TEXT UNIQUE NOT NULL, 11password TEXT NOT NULL 12); 13sqlite> DROP TABLE IF EXISTS book; 14sqlite> CREATE TABLE book ( 15 ...> id INTEGER PRIMARY KEY AUTOINCREMENT, 16 ...> user_id INTEGER NOT NULL, 17 ...> title TEXT NOT NULL, 18 ...> auther TEXT, 19 ...> publisher TEXT 20 ...> ); 21sqlite> .schema book 22CREATE TABLE book ( 23id INTEGER PRIMARY KEY AUTOINCREMENT, 24user_id INTEGER NOT NULL, 25title TEXT NOT NULL, 26auther TEXT, 27publisher TEXT 28); 29sqlite>

投稿2019/09/23 22:51

yuki_fujisawa

総合スコア15

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

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

KOU2000

2019/09/24 05:33

実行手順はVisual Studioにこのコードを書いただけです。 SQLiteのバージョンは最新のものです。 実行コマンドとはどういうものの事でしょうか? あとコマンドプロンプトでsqlite3は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。 と出ました。
yuki_fujisawa

2019/09/24 05:55 編集

> 実行コマンドとはどういうものの事でしょうか? ここら辺参考にしてはいかがでしょうか? SQLite 3 コマンドライン・インタフェースを使ってみるhttps://www.kunihikokaneko.com/cc/db/sqlitecommand.html 実行コマンド = Windowsのコマンドプロンプトのコマンドです。 どのようなコマンドを実行し、どのような結果が出たのか貼り付けていただければと思います。
KOU2000

2019/09/24 06:53

sqlite3 --version 'sqlite3' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
guest

0

コード類は「`」を3つで囲んでください。
イメージ説明

SQL

1DROP TABLE IF EXISTS book; 2DROP TABLE IF EXISTS user; 3 4CREATE TABLE book ( 5id INTEGER PRIMARY KEY AUTOINCREMENT, 6user_id INTEGER NOT NULL, 7title TEXT NOT NULL, 8auther TEXT, 9publisher TEXT 10);

投稿2019/09/23 20:40

nandymak

総合スコア799

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

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

0

'user'が予約語なのではないでしょうか。
テーブル名を別の名前にしたらいけるかも。

投稿2019/09/23 10:57

shun-K

総合スコア508

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

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

0

SQL Serverという想定で回答いたします。

問題

AUTOINCREMENTが間違っている

*DBMSによりますが、AUTOINCREMENTという記述は、ACCESSとSQLiteだけっぽいのでこちらがミスって可能性は高いです

解決

id INTEGER PRIMARY KEY AUTOINCREMENT

id int IDENTITY(1,1) PRIMARY KEY
に修正する

参考

SQL AUTO INCREMENT Field

投稿2019/09/23 09:46

編集2019/09/23 10:37
yuki_fujisawa

総合スコア15

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

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

yuki_fujisawa

2019/09/23 10:37

> [リンク] に修正してください ご指摘ありがとうございます。修正いたしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問