SQL в Python Jupyter.Не могу бросить столбец - PullRequest
0 голосов
/ 12 ноября 2018

Я учу SQL. Я ничего об этом не знаю.

Это в моем коде в блокноте Jupyter.

%load_ext sql
%sql sqlite://

%%sql
CREATE TABLE Store (Store_ID, Store Location, Opening_Year)

 * sqlite://
Done.

%%sql
ALTER TABLE Store DROP Store Location

 * sqlite://
(sqlite3.OperationalError) near "DROP": syntax error [SQL: 'ALTER TABLE Store DROP Store Location'] (Background on this error at: http://sqlalche.me/e/e3q8)

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Я рекомендую использовать подчеркивания для имен столбцов.Тогда вам не нужно использовать кавычки или скобки, чтобы SQLite распознавал имя столбца как идентификатор:

CREATE TABLE Store (Store_ID, Store_Location, Opening_Year);

Однако, если в имени столбца должен быть пробел, используйте кавычки. Документация SQLite говорит, что вы можете использовать одинарные, двойные или квадратные скобки.Но я рекомендую использовать двойные кавычки для идентификаторов, чтобы ваш код был более переносимым:

CREATE TABLE Store (Store_ID, "Store Location", Opening_Year);

Кроме того, SQLite не поддерживает синтаксис ALTER TABLE DROP COLUMN.Для достижения того же результата используйте тот же метод, который описан в Учебник по SQLite :

BEGIN TRANSACTION;

ALTER TABLE Store RENAME TO temp_Store;

CREATE TABLE Store (Store_ID, Opening_Year);

INSERT INTO Store 
SELECT Store_ID, Opening_Year
FROM temp_Store;

DROP TABLE temp_Store;

COMMIT;
0 голосов
/ 12 ноября 2018

Вы забыли COLUMN:

ALTER TABLE Store DROP COLUMN Store Location
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...