我正在编写一个小函数来帮助学习如何一起使用 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
我不知道为什么这是不正确的或如何正确地做到这一点。我跟着文档,仍然得到错误?