我正在使用Jupyter笔记本电脑来运行我的sqlite数据库。我是sqlite的新手,想从学校做一个测试。但是当我运行命令时,它给我语法错误,但我知道我得到了正确的命令。让我显示jupyter笔记本电脑中的单元格。第一个单元格。
%load_ext sql
# Load SQLite database
%sql sqlite:///movies.db
第二个细胞:
%%sql
SELECT *
FROM movies
LIMIT 2
到目前为止一切都运行良好,但当我调用第三个单元格时,它给出了语法错误:
# create new table, cast1NF
%%sql
DROP TABLE IF EXISTS cast_1NF;
CREATE TABLE cast_1NF (
id INTEGER AUTOINCREMENT,
imdb_id VARCHAR,
cast VARCHAR,
PRIMARY KEY (id, imdb_id)
);
Jupyter笔记本说DROP TABLE
上有语法错误,然后当我删除那一行时,它说id INTEGER AUTOINCREMENT
上有语法错误。这真的很麻烦。需要帮助。
1条答案
按热度按时间w8f9ii691#
不能使用关键字
AUTOINCREMENT
,除非将列定义为INTEGER PRIMARY KEY
(INTEGER PRIMARY KEY
本身只定义要自动增强的列)。因此,要么将列
id
定义为主键,要么将imdb_id
定义为唯一:请参见demo。
这样,就不需要将
id
和imdb_id
的组合定义为唯一的。或者,如果实际上不需要
id
,可以将imdb_id
定义为主键:参见demo。
没有
VARCHAR
data type in SQLite,所以我改成了TEXT
。