Я довольно новичок в PostgreSQL и знаю только основные операции с базой данных. У меня есть база данных под названием neuro_db с именем пользователя neuro_user. Теперь я обнаружил, что не могу удалить столбец таблицы из neuro_db.Невозможно удалить столбец в PostgreSQL
После того, как я попробовал psql neuro_db
в ubuntu 14.04, я попал в командную строку, начатую с neuro_db=#
. Команда \d
покажет таблицу, как это:
List of relations
Schema | Name | Type | Owner
--------+-----------------------------------+----------+------------
public | auth_group | table | neuro_user
public | auth_group_id_seq | sequence | neuro_user
public | auth_group_permissions | table | neuro_user
public | auth_group_permissions_id_seq | sequence | neuro_user
public | auth_permission | table | neuro_user
public | auth_permission_id_seq | sequence | neuro_user
public | auth_user | table | neuro_user
public | auth_user_groups | table | neuro_user
public | auth_user_groups_id_seq | sequence | neuro_user
public | auth_user_id_seq | sequence | neuro_user
public | auth_user_user_permissions | table | neuro_user
public | auth_user_user_permissions_id_seq | sequence | neuro_user
public | django_admin_log | table | neuro_user
public | django_admin_log_id_seq | sequence | neuro_user
public | django_content_type | table | neuro_user
public | django_content_type_id_seq | sequence | neuro_user
public | django_migrations | table | neuro_user
public | django_migrations_id_seq | sequence | neuro_user
public | django_session | table | neuro_user
public | neuro_category | table | neuro_user
public | neuro_category_id_seq | sequence | neuro_user
public | neuro_page | table | neuro_user
public | neuro_page_id_seq | sequence | neuro_user
(23 rows)
Я хотел изменить таблицу «neuro_page» и после ввода \d neuro_page
, он будет показывать эту таблицу:
Table "public.neuro_page"
Column | Type | Modifiers
-------------+------------------------+---------------------------------------------------------
id | integer | not null default nextval('neuro_page_id_seq'::regclass)
category_id | integer | not null
title | character varying(128) | not null
text | text | not null
url | character varying(200) | not null
photo | character varying(100) | not null
order | character varying(128) | not null
date | date | not null
views | integer | not null
likes | integer | not null
Я хотел удалить " order "в этой таблице, поэтому я попытался набрать ALTER TABLE neuro_page DROP COLUMN order
сразу после строки neuro_db=#
, но ничего не произошло. Также не было ничего, попробовав ALTER TABLE neuro_page
и DROP COLUMN order
соответственно. Столбец «порядок» все еще существует! И никакой информации об ошибке!
Я также искал в Google ответ, но ничего не нашел. Я думаю, что я следил за нормальными операциями в базе данных, но не могу удалить ни одного столбца в таблице. Для столбца «порядок» нет внешнего ключа.
Я был бы очень благодарен, если кто-нибудь может мне помочь в этом вопросе. Благодаря!
Если вы используете Django 1.7+, вы должны использовать миграции, так что вы не должны удалить столбцы вручную. Если вы вручную удалите столбец, вы рискуете, что ваши модели и миграции не синхронизируются с вашей базой данных. – Alasdair