Pythonとsqlite3を一緒に使用する方法を学ぶのに役立つ小さな関数をコーディングしています。この関数では、語彙の単語用のテーブルと、単語の定義用の別のリンクされたテーブルを作成します。
私はこれを持っています:
import sqlite3
con = sqlite3.connect'words.db'
with con:
cur = con.cursor()
cur.execute("CREATE TABLE vocab(vocab_id INTEGER PRIMARY KEY, word TEXT)")
私の問題は、定義用に別のテーブルを作成しようとしたときにうまく機能します。
上記のコードのすぐ下にある次の行を次のように続けます。
cur.execute("CREATE TABLE definitions(def_id INTEGER, def TEXT, word_def INTEGER, FOREIGN KEY(word_def) REFERENCES(vocab,vocab_id)")
私は外部キーの使用方法に関するsqlite3のドキュメントを読んでいましたが、上記のこの行の最後の部分は、それが行われると想定されていた方法でした。
返されるエラーメッセージは次のとおりです。
<sqlite3.Cursor object at 0xb782b720>
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
sqlite3.OperationalError: near "(": syntax error
なぜこれが間違っているのか、それを正しく行う方法がわかりません。ドキュメントをフォローしてもエラーが発生しますか?